2006年 6月30日(金)に行なわれたShibuya.js 第二回目のイベント、Shibuya.js Technical Talk #2 に参加してきました。はてなメンバーが主催者にいるこのイベントはJavaScriptをキーワードにした技術関連の講演を連発するという内容。諸事情によりご招待いただいて見ることができました(なにせ参加申し込みがあっという間に終わる人気イベントですからね)。
もっともクールだったのは、id:brazilさんによる「私の考えるJavaScript」。作りこまれた資料、テンポの良いプレゼン、そして本質をつく内容。文学からプログラミング言語を語るという素晴らしい試みでした。ぜひぜひ参考にさせていただきたいプレゼンです。
懇親会では色々とお話させていただきましたがJavaっ子だったのですね。言語としてのJavaは生き残れるのか?みたいなことで意見交換。動的言語(特にJavaScript?)で全部書けばいいのではと。最後まで平行線気味でしたが(w、僕としてはビジネスロジックはJava、グルーやゼリーはスクリプトというのが今の結論ですね。コンフィグがこれからのアプリケーションの中心になってくることを考えると重要度が増していくというのは間違いないのでしょうが。
勉強になったのは"最速の人"ことmalaさんによる「Inside LDR(1)」。LDRはlivedoor Readerのこと。まず、LDR自体が全ての処理をWebAPI化し、その1つの実装として現在の画面を提供しているとの事。こういう姿勢はすばらしいですね。
それからイベントハンドリングモデルでの実装方法。behavior.jsのようなイベントハンドリングモデルはテストにも有効だという指摘はなるほどでした(常識だったみたいですけど)。behavior.jsの場合、onLoadイベントでフックをエレメントに埋め込みますが、LDR特製のはイベント発火をキーとしてエレメント側に埋め込んでおき、そのキー対応するイベントを捜すという仕組み。この方が動的に書き出したエレメントにもイベントを埋め込めるという指摘はその通りだなぁと。これは試してみたい。
そして、それらのイベント処理をタイマ管理させることによって遅延ロードを可能にし、先読み処理を予約しつつも、必要なくなればキャンセルするというあたりまでちゃんと作りこまれています。すばらしいー。
それにしてもmalaさんのノウハウは十分に世界レベルではないでしょうか。Ajax Experienceでもこんなレベルのプレゼンないし。
単純にすごいのは小林さんによる「Orto | JavaScriptでJVM」。良く聞いてくださいね。OrtoはJavaScriptでJavaバイトコードのインタプリタを書くという試みです。ですからJavaコードで書いたものが、ブラウザのJavaScript実行環境で動きます。J2MEのCLDCを実装しているとの事。1万行に及ぶコードがあるのだとか。マルチスレッド風に動く仕掛けも用意されています。
ちょっと違うのですが、JavaでJavaScriptというとGoogle Web Toolkitとが思いつきます。あれはJavaScriptコードに変換してしまいますが、Javaという静的言語の良さを活かしつつJavaScriptの実行環境を利用するというアイデアは同じですね。
そしてちょっとしたサプライズ。竹迫さんの「Server Side JavaScriptの歴史と未来」では、sarugau JSを紹介していただきました。"Server Side JavaScript"というとIISやNetscapeを浮かべる方もいるかもしれませんが、これが再燃しています。当時と違ってJavaScriptの普及率が桁違いに多いので、そんなに違和感なく受け入れられる可能性があります。なにせJavaScriptのイベントやって100人以上が集まるわけですから。
竹迫さん、ラボに遊びに行きますねぇ。
他にもspidermonkyの使い方、wemaの新バージョンwema3のアイデア、ActionScriptでクロージャを継承渡しスタイルで実装する方法、イラレでJavaScriptを使ってPhenakistiscope(驚き盤)を遺伝的アルゴリズム(GA)で生成する方法、cometの概要、Script.acluo.usの深いところ、GreaseMonkeyの便利な作り方、PHPやRubyでのJavaScript実行環境の状況、Mochikitの深いところ、RhinoとJSynを使った音だしの方法などなど、まー、どれもこれも面白くて勉強になりました。
あ、最後になりましたが翔太くん、the Ajax Experienceの報告ご苦労様でした。僕はゆっくり席から見ていました。
全体の感想ですが、なんといっても技術レベルが高い。JavaScriptを含めWeb関連のアーキテクチャをそれなりに理解している人でないとついていけない感があります。それだけに面白いですね。JavaScriptというキーワードだけで、これだけ多種多様な技術が集まるとは。目的も実行環境もバラバラ。こういう感覚が楽しいですね。
僕自身もヒントになるアイデアが多かったです。Sarugau JSではMochikitを試していたのですが、見ていないライブラリもあったので手を出してみます(Sarugau JSはエフェクトが一切関係ないので、script.aculo.usは興味ないのです)。
それにスーツの人がいないし若い。20代が中心なのかな?Javaのイベントとは大違いでした。
Javaは違うステージにいるので同じノリを求めることはしませんが、でも"楽しい"というプログラミングの原点が薄くなっているのは良くないことですね。Javaに限らずソフトウェアを作ることは楽しい、という啓蒙活動は大事ですね(が、Javaは楽しいだけぢゃだめなんですけど、これは別の機会に)。
