「Perl Is unDead」精神に触発されて
かまぷ AWKのカンファレンスってないんですか?
斉藤 なかなか聞かないですね。集まるんですかねっていう。
ゆうこ 海外を含めてもないですか。
斉藤 ないですね。まあAWKだけでカンファレンス持てると思えないんですが。
かまぷ あったら行きたいですよね。
斉藤 あったら面白そうだなっていう。ええ。さっきも言ったように、AWKのマニアって、「AWK != Perl」みたいな人たち、ちょっとイッちゃってる人たちが多いので、面白いかなと。
かまぷ でも意外ですね。私結構Perlのほうが過激な人が多いのかと思ってた。
ゆうこ で、斉藤さんはコミュニティも運営されているそうなんですけど、いつから始められたんですか?
斉藤 これはですね、今のAWKユーザー会のホームページがありますけれど、これができたのが2008年なんです。当時、○○users.jpっていうのが流行ってて、2008年のYAPCで、ミハエル(Michael Schwern)さんが「もっとプログラミング言語を盛り上げよう」と話された時があるんですよ。これをもとに、じゃあAWKも何かやろうぜ、と。
かまぷ ここでもPerlに対抗してるんですか。
斉藤 対抗はしてないですよ。Perlを参考にしました。面白いのは、先ほど言ったミハエルさんの講演の動画「Perl Is unDead」は、聞くと結構面白くて、Perl Is unDeadって、Perlが別に「死んでないぞ、まだ生きてんだ」って、そういう呼びかけじゃなくて、「Perlはゾンビなんです」っていうことが言いたい。日本語的に分かりやすく言うと。「オバタリアン」って言葉があったじゃないですか。
かまぷ ありましたね。
斉藤 オバタリアンの元になった映画で「バタリアン」っていうのがあるんですよ。毒ガスのボンベのガスを吸うとゾンビになっちゃう。そのゾンビになった人たちって、人間の脳みそを欲しがるんですね。
かまぷ 脳みそくれー、脳みそくれーって。金曜ロードショーみたいな。
斉藤 つまり何かっていうと、Perlは常に、みんなの知恵や頭を欲しがってるということを言いたくて「Perl Is unDead」っていう話をされてたんです。ああなるほど、面白いなと思った。なので、AWKもこういうページを作ろうと思って作りました。しかもこれ全て、フルAWKで書かれてるんです。
「脳みそくれ」って、要は君たちを欲しがってんだよっていう。その考えはとっても賛同できるところがあって、AWKとしてもやっぱりいろんな人が集まって来て欲しいなって思ってます。今、日本語のAWKユーザー会は、ざっくりですけど200人程度。ほとんど実はイベントができてないのがとっても残念で、何かやりたいところはあるんですけどね。コアで常に動いてくれる人たちがなかなかいなくて。
ゆうこ どうやったらユーザー会に入れるんですか。
斉藤 基本的には、あんまりきちんと書いてません。メーリングリストに入ると、入ったことになってます。
ゆうこ 活動内容としてはどういうことをやられてるんですか。
斉藤 基本的に2つで、1つは「日本でAWKを使いたい人を応援します」ということ。何か困ってることがあったら、メーリングリストTwitterで声をかけるなど、みんなで活性化していきましょう。要は国内の活性化。
もう1つが、国内だけで改善できないところ、バグを報告したいんだけど誰に報告したらいいのか分からない、例えば英語が全然できないんだけど、ここやっぱりおかしいよね、など。そういう人たちに対して、じゃあ代わりに英語に翻訳して報告しよう、という2本立てにしてます。
ゆうこ ちなみに、AWKで困っているという意見はどんなものが寄せられるんですか。
斉藤 結構あるのが、バグじゃなくって自分の思い込みというのが多いですね。これうまく動かないんだって言われても、いやそれは仕様だからと。例えば、インクリメント演算子っていうのがあります。ある変数に対して、常に1を足していくっていう。何とかプラス1っていうのを、「++」って書くんですよね。それで、「a++」と書いた場合と、「++a」と書いた場合が異なって、おかしいんじゃないっていうのを質問された方がいて。
でもそれはもう仕様としてもう決まっていて、ソースの中見ると、カーニハンが、「++a」の場合はこう、「a++」の場合はこうですよと綺麗に書かれています。そういう陥りがちなところで質問とかが多いですね。
かまぷ そのオープンソースの貢献の仕方で、バグを発見するっていうのも1つの手だよみたいなところもありますよね。
斉藤 重要です。昔「fjの教祖様」と自らを名乗っている方がいらっしゃって、その人は実はめちゃめちゃいい人なんですけど、この人が立てたプロジェクトで「Project DOUBT」というのがあるんです。Linuxって、とても膨大なプロジェクトで成り立ってますよね。これ、コンパイルが通るということは、つまり、文法エラー(シンタックスエラー)はないはずなんですよね。なのにバグる。なんだろうこれってことで、シンタックスじゃなくセマンティック、要は意味的エラーがあるかもしれない。これを発見しようというプロジェクトをやられていたんです。
(そのプロジェクトのエピソードで)面白かったのは、sync命令。これを行うとメモリに保持している情報をハードディスクに書き込むんですが、Linux 2.6時代は処理時間がとても速い。一瞬で戻ってくる。なんでこんなに反応が早いのか調べてみたら、計算通りにならないことに気づいた。アンマウントするとやけに時間がかるんですね。これはsyncしてない、と気づいたんです。プログラム上ではsyncしているように見えるんですね。
かまぷ 世界共通のコマンドですよね? すごい、これを日本人が発見したということですね。
斉藤 そうそう。
ゆうこ このフィードバックはどのようにしていたんですか?
斉藤 当時はメーリングリストだとか、Bugzillaですね。今だと、例えばAWKの場合もメーリングリスト。
かまぷ それはコミュニティによって違うんですよね。バグのレポートの仕方って。それを探すのも一苦労。
斉藤 大変ですね。
ゆうこ 最近だとでGitHubでプルリクを送って、という感じがしますけど。
かまぷ 流行ってればいいけどね。でも。
斉藤 探すのが大変で。トラフィック、AWKって多くて。AWK(オーク)って多くてってなんなんだ。
かまぷ オヤジギャグ系ですね。
ゆうこ AWKだけに。
かまぷ ラジオっぽくなってきた(笑)
斉藤 今だとAWKの場合はメーリングリストにバグを報告するんですね。1日1回ぐらい、バグの報告がありますね。
かまぷ それは、日本のユーザー会にですか?
斉藤 じゃないです。ワールドワイドで。日本AWKユーザー会にもたまに来ます。