SawzallというGoogle語

umitanuki2006-11-09

やっぱ朝飯は食わないと一日ダルいです。ココナッツチョコだけでは朝飯にならないです。いくら10時出社とわいえ、9時20分に起きるのは体によくないです。ひとしです。

電気代も滞納してるしなー家賃も2ヶ月に一遍かろうじて払ってるしなーそういえば水道代の請求も…


ってな暮らしを送っている毎日です。で、今日もこの時間。明日起きられるかなー。早く寝ないとなー。とか思いながら、なぜか画面に向かって日記を書いている'-`)

なんでかっていうと寝ようと思ってベッドの上を片付けたらSawzallというタイトルの論文が出てきて読み始めて、なんか興奮してしまったのです。SawzallというのはGoogleインタープリタ言語で大量のデータを並列処理できて、かつ簡潔で高速という、優れたプログラミング言語です。Googleは世界中の情報を毎日かき集めてきて、数百〜数千のマシンにぶち込んで並列で前処理して検索データを作ったりしているのです。Googleの論文といえば最初のBrinとPageの有向グラフを基にしたWebページ評価モデルが有名ですが、そのあともGoogle File SystemやらMapReduceやらBigTableやら、コンピュータサイエンスのツボをつくような論文が目白押しです。ただ、これらの論文は比較的日本語のページでも紹介されているにもかかわらず、なぜかSawzallというのはあまり有名ではない。ところが読んでみると、これぞGoogleという感じがしてきます。

SawzallはMapReduceの上に構築されたProcedual言語です。というだけでもぶっ飛んでいる。なぜか。まずMapReduceC++で実装された並列処理のための基盤で、Javaスクールの危険 - The Joel on Software Translation Projectでも紹介されています。ここでも言及されているように、コンピュータサイエンスといえばCやアセンブラLispSchemeといった両極端なところを追求すべきだと思うのですが、昨今の文系ITブームにより、JavaとかC#とか、脳みそカチ割ってやろうかと思います(JavaC#は優れているのだけれど、「Javaがかけます!」という人に限って何も書けない)。

横道に逸れました。要するにMapReduceは速度と抽象性を追及した結果なのであり、それはコンピュータの低いところと高いところが他のどこよりも優れているということを意味します。

まあそれだけだったら、やっぱGoogleだな、で終わるのですが、このSawzallという言語がまたすごい。何がすごいって、インタープリタ且つProcedualな言語なのですよ。もうね。アホかと。これだけ世の中「オブジェクト指向」「オブジェクト脳」「Perl6はオブジェクト指向で」「Rubyは純粋オブジェクト指向だからすごい」とかいったって、Data ProcessingなんてProcedualなんですよ。GUIみたいのを設計するときに、要するに人間様に対応してくれる亜人間を作り出すときにだけオブジェクト指向が役に立つのであって、ぺたばいとデータを処理するときにオブジェクトなんて必要なかとですよ。C#とか出る幕ないですよ。GFSがあってMapReduceがあって、I/O分散とかFail Torelanceとかネットワーク処理とか肝になるところは全部OSネイティブで書いてあって、やわらかいところはやわらかく作る。まるで牛フィレステーキですよ。違うか。Perlなんかで日々データ処理してちゃ、だめだなーって思ってしまいますが、うちは小さく生んで大きく笑うつもりなので、それはそれでいいのです。制約があって、初めて芸となる。サーバーが数台なら、数台なりの工夫のしかたがある。数千台なら数千台の工夫がある。それが、技術ってもんじゃあないですかい。MicrosoftOracleにおんぶにだっこじゃ、あんまりじゃあないですかい。そこへきて「Oracle Silverは簡単だよ」とか「RoRアジャイル開発が可能です」とか、反吐がでるっつうの。タグクラウドを3時間で生成するのは結構なことだけど、CPANの使い方を知っているのは技術とは違いますから(作った人を批判したいのではなくて、それを見て「またあの人はすごいことをした」とかいう周りがキモイと思うだけです。作った人はもちろん「まあ、おもちゃですから」ぐらいにしか思っていないと思ふ)。


また横道に逸れた。
まあそういうわけで、Googleは世の中の流行なんか一切無視してる。まあうちもだけどw。その象徴がGFSでありMapReduceでありSawzallなわけです。ちなみにSawzallの論文は30ページ近くある。Google Labsに公開されている論文の中でもかなりの分量。且つ2003年ごろの発表だと記憶していますが、なぜこんなに無視されてるの??

Google論文アツイ。今度はBigTableを読もうと思います。BinaryHacksもほしいです。今日はもう寝ます。