近藤佑子(以下、ゆうこ) 今回が第1回の放送なんですけれども、この番組はですね、今年の2月にあったオープンソースカンファレンスのあとに、2人で飲んでて「やろう」って言ってね。やっと始められましたね。
かまたひろこ(以下、かまぷ) そうですね。吉祥寺のCAFE ZENONで。
ゆうこ かまたさんはその前にも対談の企画をやられてたんですよね。
かまぷ はい。『Software Design』さんで、「かまぷの部屋」という対談を1年半ぐらいやらせていただいて。で、まあ19回という回数がちょっと消化不良だよね、みたいな話をゆうこりんとして、何かゆうこりんも人生に悩んでるみたいで、何か2人でやろうよと。TechGIRLも一緒にやってるしね。
ゆうこ そうですね、TechGIRLっていうのは、IT関係の女性の方がもっと前に出ていこうよっていう主旨でLT大会をやってまして。
かまぷ プレゼン能力を高める会ですね、女性の。そっちは裏方が多くて、何かもうちょっとじっくり人の内面を見ていくようなものを、何かやりたいんだよねと話してて。
ゆうこ 世の中には技術系Podcastがいっぱいあります。例えばRebuild.fmさんが有名ですけど、私がやっているCodeZineでも何かできないかなと。それにしても、編集者もなかなか裏方の仕事なんですよね。
かまぷ わかる。
ゆうこ ねえ。表に出たい時もあるじゃないですか。それで、自分が主役になりつつもいろんな人の話を引き出して、みなさん聴いてらっしゃる方、読んでくださる方にもお届けできるようなものが作りたいなとかまたさんに話をしたら、「やろう」と。
かまぷ 形にしようと。今日に至ったわけですよ。
ゆうこ そうですね。いや本当、この日を迎えられて私はすごく嬉しいです。
かまぷ 私もですね。
ゆうこ で、こんな感じで始めていきたいと思います。
かまぷ よろしくお願いします。
なぜ今、AWKの記事がそんなに読まれているのか?
ゆうこ それでは、今回のゲストをご紹介します。「日本GNU AWKユーザー会」の、斉藤博文さんです!
斉藤さん(以下、斉藤) どうも、日本GNU AWKユーザー会の斉藤です。第1回ということで、よろしくお願いします。
ゆうこ よろしくお願いします。じゃあ、乾杯しましょうか。
斉藤 まずは、喉を潤して。
斉藤&かまぷ&ゆうこ 乾杯!
かまぷ あー、うまい。
ゆうこ で、斉藤さんにぜひ出てもらいたいなと思ったのは、斉藤さんが、AWKについての記事を『シェルスクリプトマガジン』で連載されていて、その記事をCodeZineにも転載させていただいたご縁です。PVを調べてみると、2014年度と2015年度で一番読まれてるということが分かりました。
斉藤 すごいですね。自分が言うのもなんですけれど。
かまぷ 「『シェル芸』に効く AWK処方箋」ですね。
斉藤 やっぱみんな、AWK好きなんでしょうね、どこかで。
かまぷ あと、そういう書籍が足りないのもあったりとかするのかな。
斉藤 そうですね。今から20年、25年ぐらい前ですかね、AWKブームがあって、書籍は4冊くらいほぼ同時に出てるんですよ。ただ当時の書籍はまだMS-DOSの時代のものなんです。今はみんなPC-UNIX、Linuxを触れるようになって、本当のAWKを使えるようになったんだけど、書籍が新しいAWKに対して全然キャッチアップできてない。それで(AWKの記事を)読みたいというところはあるんでしょうね。AWKの新しい機能ってなんだろうとか。
かまぷ ソフトのアップデートが少なくても、ハードが進化していているので、やれることが実は増えているっていうのにみんな気付いてる。
斉藤 特にオープンソースの流れがあるんでしょうね。今までMS-DOSや、Macでいうと漢字Talkのようなプロプライエタリのものばっかり使ってたのが、オープンソースになって、今まで手が届かなかったLinuxが誰でも使えるようになった。じゃあそのLinux、まあUnixを作った人が作ったプログラミング言語のAWKが、より身近なものになってるのかなと思います。
ゆうこ 私、AWKに触れたのは斉藤さんの記事が初めてで。そもそもAWKってどういうところで便利に使える言語なんですか。
斉藤 そうですね。USP研究所さんが出されている『プログラミング言語AWK』っていう書籍があるんですけど、その中にも書かれてます。
まず簡単なデータ処理、定型のデータ処理ができる。あとはフォーマッタですね。テキストがザーッと並んでいるものを、ちゃんと整形された文章にすること。さらに数値演算が非常に簡単にできるというところですね。特に命令数が圧倒的にプログラミング言語の中で少なくて、用意されている関数が20個ぐらいしかないんですよ。なので覚えることも簡単だし、覚えてしまうといつでも引き出せるという。そういう便利なところがありますね。
ゆうこ もともとは何を目的として開発されたんですか?
斉藤 AWKって「A」「W」「K」と書きますが、実はこれ作者のエイホ博士と、ワインバーガー博士と、カーニハン博士という3人の名前の頭文字を取ってAWK、それを「オーク」と読んでるんですが、エイホ先生が言うには「AWKって使い捨ての言語」。なので書いてパッと捨てちゃう。まさに今で言うシェル芸ですね。書いて跡形も残さずに消え去ってしまうぐらいの簡単なものを作る言語ですよと。
その元になっているのは、「grep」っていうテキストファイルの中身を検索するコマンドです。grepはgrepで名前の由来もあって、あれはもともとエディタの「Ed」(viの前身)のコマンドで、実はgってglobalなんです。で、reがregular expressionで正規表現を検索して、pがprint。なので、文章全体を正規表現で検索した結果を表示しなさいっていう、それがgrepなんですね。
ただ、検索だけして終了じゃなくて、検索した、選ばれた結果に対してプラスアルファの処理がやりたいよね。ただその処理はとても簡単な処理でいい。そこに対して新しいプログラム言語を作っていきたい、というモチベーションでできたのがAWKだと、エイホ先生はおっしゃってますね。
かまぷ エイホ先生のホームページを見てたら、99 Bottles of Beerってサイトがありましたね。いろんな言語でスクリプト書いてみる、みたいな(AWKバージョンはこちら)。
ゆうこ あと、斉藤さんの記事の中で、AWKを使ってる人は「エレガント」っていう言葉が好きだってことを書かれてて、その心をちょっと聞きたいなと。
斉藤 エレガントっていう言葉の元ネタは、AWKを作られた、3人のA、W、Kの方、ではなくって、GNU AWKのメンテナーをされているアーノルド・ロビンスさんです。彼がよくですね、エレガントっていう言葉を自分の文章の中で使うんですよ。で、AWKを使う限りは、Perlのような汚いプログラム、と言ったら怒られますけれど、ではなくってAWKらしく、我々がUnixの王道だというのを示すためにエレガントに書きましょうと、結構書かれてますね。
デブ☆ラジではお便りを募集しています!
この番組へのご意見やご感想は、Twitterのハッシュタグ #デブラジ までお寄せください。