今回はShibuya.jsなどJavaScript界で活躍中のamachangこと天野仁史さんと、mixi、はてなや最近ではIPAなどさまざまなWebサイト・サービスのセキュリティ脆弱性を指摘(?)していることで知られるHamachiya2さん(はまちちゃん)のお2人がゲストです。まずは2人の馴れ初めから…。
出会い
弾:で、お2人の馴れ初めは?
天野(以下、天):mixiで俺が「マイミクなってください」ってところから始まった。
Hamachiya2(以下、は):はい。ナンパされちゃいました。
弾:はまち釣り(笑)。
天:マイミクなってくださいってとこから始まって、そしたら(はまちちゃんが)JavaScriptを高速化してる人だ!っていうことで、デブサミのときに見に来てくれたんです。
JavaScriptのライブラリ
天:最近、注目してるのは、ウィジェット[1]とかApollo[2]とか…。
弾:Apolloねぇ。うん。あれでファイルシステムにも堂々とアクセスできるしねぇ。
天:ActionScriptもJavaScriptと同じと考えれば、だいたいウィジェット界は(JavaScriptが)制覇したかなとかって。今後はそこらへんに期待してるって感じですね。それでも他の言語と比べるとまだできるところは少ないですけど。
弾:アクセスできるところは少ないんだけど、たまたまアクセスできる分野がむちゃくちゃ広いからね。ブラウザってどこにもあるし(笑)。
は:もしかしたらJavaScriptってまだ王道みたいなのが、あんまり確立されていないっていう点も。
弾:確立されていないというのか、そもそもライブラリをロードするしくみがずっとなくて、このままいっちゃうのはどうよって感じはしますね。JSAN[3]がもうちょっと早く出てくればよかったけど、JSANはかなりしくみが“わや”なんだよね。だからJSANコミッタになろうかと思ったけど、ちょっとJSANのやり方って気持ち悪いしっていう。
天:どういうところが?
弾:ちょっと過度にCPANに依存してるかなというのが1つ。JavaScriptそのものを騙してPerlみたくモジュールをロードできるようにしてるから、これでJavaScriptの仕様が変わっちゃったらどうしようとかね。あと、ネームスペースどうするかっていうので、まだコンセンサスが確立されていないのね。Javaみたくjp.co.danとかって長ったらしくつけるのか、それともCPANみたくなんでもありで早いもの勝ちでいくのかというのも解決してないし。
天:JavaScriptって、モジュールをロードするしくみがすごく重いじゃないですか。ネームスペース1個作ろうと思っても、それで重くなるのとかが嫌なんで、俺は一切ライブラリ使わないんですよ。最近はPrototype[4]も使わなくて。そういうところに問題があって、もっとスムーズにロードできるしくみが整わない限り、ライブラリがどんだけDojo Toolkit[5]とか、ああいうでっかいライブラリができても…。
弾:でっかいし、乱立してるよね。
天:エンタープライズだと、Googleとかが(JavaScriptを使って)すごく使いやすいサービスを出してくるじゃないですか、あのレベルのものを作ろうと思ったときに、どれも使えないんですよ、結局。プレゼンツール1つ作るにしても、スムーズな挙動、ページの移動とかをやろうと思ったら、全然足りないんですよ、ライブラリでは。
弾:強引な例えだけど、たとえばPerlで何か書いてるときって、なんか使えそうなのないかと思ったらCPANに転がってるじゃん? だから、俺はちょっと体型的にだめなんだけど、着る服がないなぁってユニクロへ行って買ってくるみたいな感じでしょ。JavaScriptってさ、いちいち手編みしてるような感じがあるよね(笑)。最初に「function $(id)」って打ってさ(笑)。
は:そういえばこの前、amachangの日記にあった「function」をいかに早く打ち込めるかって話題を見て、ぼくの同僚が「function早打ちゲーム」(注6)を作ったよ(笑)。ミリ秒単位で計測、しかもランキングつきで結構アツい(笑)。