2011年10月20日 00:45 [Edit]

Jobs, Ritchie and YAPC::Asia

「blogを書くまでがYAPCです」

わかっちゃいるんだけど、さすがにSteve Jobsが亡くなり、Dennis Ritchieが亡くなり、iPhone 4Sが発売され、そして長女が一つ歳をとるというのがかぶるというのはきつかった。

ビデオもアップロードされはじめたことだし、宿題を片付けておくことにしよう。


A Language for Getting Your Job Done

まずは必修科目から、私のスライドは以下のとおり。

かなりとりとめのない話なのだけど、かいつまんで話すと、これはオープンソースでどう食っていくかというお話。未だに「これだ!」という答えに巡り会ったわけではないのだけど、まだ私が旧オン・ザ・エッヂ(現livedoor)のCTOで、京都でEric Raymondに夕食を奢っていたころに比べたら、ずっと「これでいいんじゃない?」というところまでたどり着いたことに思い立ったので。

オープンソースプログラマーがライフワークとライスワークを両立させられるようになったのは、Webサービスの「巨大化」と「両端化」のおかげ。

Raymondは「十分な目ん玉があれば、全てのバグは洗い出される」と言ったけれども、これはプロジェクトが「充分小さい」場合の話。GoogleだのAmazonだのの全コードをオープンにされたところで、全人類を投入しても十分な目ん玉は確保できるだろうか?それもソースだけではなく、全データにも目をとおさなければ意味がないし、コードもデータも刻一刻と変化しているのに。

GoogleもAmazonも、価値があるのはあくまで「生きている」状態であって、「DNA」や「タンパク質」に相当する個々のコードじゃない。だとしたら、それらの部品をいくらオープンにしようと、興行的価値の源泉である神秘性は失われない。DNAやタンパク質がわかったところで生命を再現できないように。

Jobs が Stanford の卒業式で言っていた connecting the dots とは、そういうことなのかな、と。個々の点は no price でも、それらの点が線で結ばれると priceless になるとでもいうのか。

Mac OS X 自体、Perlが標準装備されている。CもC++もObjective-CもJavaも後からインストールしないとついてこないのに。

Text of Steve Jobs' Commencement address (2005)
Again, you can't connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in something — your gut, destiny, life, karma, whatever. This approach has never let me down, and it has made all the difference in my life.

それでうまく行くかどうかなんて、やってる最中にはわからない。でもやり続けてきた結果、点は確かに繋がった。なんで繋がるかは、Jobsだってわかってなかった。だけれどやらなきゃ繋がらないのは私にだってわかる。

YAPCもまた、それを確認する祭りなんだ。

Perl should run everywhere

今回のYAPCで最も刺さったのが、 Jesse Vincent のこの言葉。

"Perl should run everywhere".

前述のとおり、Perlは今でもいたるところで「動いて当たり前」の言語だ。いや、だった。

Larry Wallは「Perlは史上初のポストモダン小電脳言語だ」と宣言したけど、ポストPCの時代において、言語というのは手元で動かすものではなくなった。唯一JavaScriptを例外として。Perlだけじゃない。PythonもRubyもこの点では同じ穴の狢。

いやわかってますって。Jailbreakすれば動くようになるって。あるいは手元で動かす必然性そのものが、クラウドのおかげで疑問になったって。私自身llevalというものをこさえたし、クライアントサイドJavaScriptすらKindle Fireでは動かしてるそうだし、Siriの本体はiPhoneの中にあるわけじゃないし。

でもSiriと戯れてるJesseに「オンラインでないと動かない」と伝えたとき、彼が心底がっかりしたのもまた時事実なんだよね。

なぜ私がコンピューティングの歴史における重要性において、Steve Jobs 全くひけを取らない Dennis Ritchie の逝去に、Jobsのときほどは心を動かされなかったの理由が、多分そこにある。

Ritchieは、ハードウェアを作らなかった。そのハードウェアにはじめから載っているソフトウェアよりいいソフトウェアを作りはしたけど。Unixのオープンネスということに関しても、それは Ritchie の積極的な関与ではなく、そうしなければAT&Tが独禁法に抵触するという、きわめつけの「大人の事情」。

ハードウェアを作ると何が「つおい」((c)則巻アラレ)かというと、どんなソフトウェアをひいきできるかを決められること。もちろんこれは「越えられない壁」じゃない。原理的にはどんなソフトウェアだって「後付け」できる。JobsがAppleにいない頃ですら、SoftPCは存在したし、Virtual PCだって元はMac用のソフトだったんだ。

だけどその難易度を左右するのは、やはりハードウェア。BootCampできるようになったのも、MacにもIntel入ってるようになったおかげ。

ハードウェアとオープンソースの関係は、いつだって片思い。(厳密にはオープンソースとは呼び難い)RitchieのUnixから、スクリプト言語に至るまで。

2011: July - October Political Notes - Richard Stallman
Steve Jobs, the pioneer of the computer as a jail made cool, designed to sever fools from their freedom, has died.

いかにもRMSらしい台詞だけど、ハードウェアというのは監獄そのものではないのか?Jailbreak?それって鉄格子のペンキを塗り替えてるだけだよね?

我々(フリー|オープンソース)プログラマーは、悲しいほどその監獄のありように貢献してこなかった。もっと速いCPUが欲しいとは言っただろう。もっと大容量の記憶装置が欲しいとも。しかしマウス一つねだったわけでないし、タッチスクリーンなんて想定の遥か彼方。「この鉄格子はしょぼい」「あの麦飯はまずい」以上のことは言ってない。

Jobsが築いた監獄がいかにCoolなのかは、YAPCを一瞥するだけで疑いようがない。MacBook Airだけで過半数を超えていたのではないか。トークの賞品は iPad2 に Mac Mini 。Aren't we such fools severed from freedom?

でもさ、レンガ一つ積んでないんだよね、フリーソフトウェアファウンダー諸氏は。

監獄といえば、コミュニティだってそうだ。完全に「フリーダムな」コミュニティはありえないし、あったとしたらもはやそれはコミュニティとは呼べない。我らがPerlコミュニティは懐の深さで他のコミュニティからも一目おかれているけれど、それでも北畠なにがしの「フリーダム」を受け入れるわけにはいかなかった。もちろん「人のフリーダムを奪うフリーダム」なんて、RMSですらJobs以上に言語道断と言うだろうけど、しかしこのフリーダムは、Perlコミュニティーには受け入れられなくても、特許庁には一度は受け入れられたフリーダム。

TMTOWTDI, there's more than one way to do it というのはなにも、 every way must be allowed ってことじゃないよね。

で、今のところ、JavaScriptが"the only way accepted by every browser"ってことになっている。言語数で盛れば針の穴のように狭い穴だけど、らくだが通れないほど狭くない。その上でLinuxを動かしてさらにその上でperlを動かすという力技でさえ「とりあえず動く」ことは確認されているし、CoffeeScriptのような取り組みもある。Jesseの狙いの一つは、CoffeeScriptと同じアプローチを取れるぐらい、Perlを小さくすることだ。Jesseが言ったように、それは難しいが可能だろう。

でも本当に難しいのはそこじゃない。

この言語が動いてほしいと、利用者に感じてもらうこと。

OS XにPerlが載っているのは、free だからじゃない。 useful だからだ。少なくとも、Appleがそう判断している。iOSに関しては、JavaScriptでこと足りるというのも、また。

それでは、JavaScriptでは足りないというのはどんなシーンだろう?Dartに足りないのは何だろう?

コミュニティ、かも知れない。John Resig がそう言っていたように。

Perlをブラウザに移植するのと、コミュニティをJavaScriptに移植するのとどっちが楽なのかな…

とりとめのない考えが、止まらない。

これだから自由というのはおそろしい。

Perl, the first postmodern computer language
If you guys want me to stop talking, you'd better ask some questions.

Same here.

Dan the Prisoner of Freedom


この記事へのトラックバックURL

この記事へのトラックバック
Jobs が Stanford の卒業式で言っていた connecting the dots とは、そういうことなのかな、と。個々の点は no price でも、それらの点が線で結ばれると priceless になるとでもいうのか。 Mac OS X 自体、Perlが標準装備されている。CもC++もObjective-CもJavaも後からイン
点を繋ぐ【返却炉】at 2011年10月23日 12:53
この記事へのコメント
私はちょうどあなたのブログ、私はあなたが自分のものは素晴らしいですし、別のフォロワーを持って知っているようにコメントしてくださいと思ったので、初めての読み終えた!投稿が来てください!
Posted by clickssl at 2011年11月05日 18:39