小飼弾のアルファギークに逢いたい♥

#10 jQuery/Mozilla John Resig

この記事を読むのに必要な時間:およそ 3 分

JavaScriptの今後

John Resig氏(撮影:武田康宏)

John Resig氏,(撮影:武田康宏)

弾:最近はjQuery以外にはどんな開発を?

Resig:JavaScriptの可視化をしています。

弾:可視化について,アニメーションを描画する際,今のところ関数は1つでループはなくて,表示の数だけsetInterval()とかset Timeout()で関数を呼ばなければならない。これって何とかならないんですか? たとえばwindow.flush()というメソッドを入れるとか,yieldできるようにするとか注2)⁠

Resig:残念ながらそういったことをしようとすると,抜本的に今のやり方を変えなければならないんです。

弾:私はLispのバックグラウンドも少しあるので何とかついていけますが,従来型の書き方がそのまま動くほうがうれしいユーザが多いと思います。それにその関数の実行も,現在のJavaScriptの実装のほとんどはプリエンプティブではないですよね。プリエンプション注3の入る余地は?

Resig:これも実装方法次第。JavaScriptでプリエンプションを実装した例も結構あります。たとえばJavaで書かれたRhino注4とか。

弾:ここまではLarry Wallの言うところのManipulexity(難しいことをどれだけキチっと片付けるか)よりの質問が多かったのですが,Whipuptitude(簡単なことをどれだけサクっと片付けられるか)はどうでしょう。JavaScript 2.0のWhipuptitudeは?

Resig:いくつもありますが,私のお気に入りはモジュールかな。

弾:やったー! ついにuse注5登場。でも,なんで最初からそうなってなかったんだろ。

Resig:伝統的なオブジェクト指向はあまり役に立たないと思っていたのかもしれません。

弾:アマチュアのJavaScripterで,そんなに専門知識のない人たちにとって魅力的な新機能を2つほど選んでください。

Resig:1つは,プロパティ名ではなく,値をイテレートできるようになったこと。

弾:PerlのHashに対するvalues。

Resig:もう一つは,let宣言注6です。今のvarによる「関数ローカル変数」ではなく,本物のブロックローカル変数。JavaScriptはもともとこうすべきでした。

画像

オフラインアプリ

弾:jQueryのこともお尋ねしましょう。そもそも,jQueryを作り始めたきっかけは?

Resig:2005年ごろにPrototypeに出会いました。ですが,Prototypeは結構癖があってしつこい。もっと短くてあっさりしたものが欲しかったんです。

弾:PrototypeにしろjQueryにしろ,今のところウィンドウなりタブなりが20個あったら,20個別々にロードされるんですよね。1つのライブラリを共有することはできないんですか? 今はメモリ使い過ぎ。

Resig:Mozilla(のソフトウェア)では現在,ライブラリのローカルコピーを保管し,前もってコンパイルしています。最初は最も人気のあるライブラリからスタートして,せめてそれらのキャッシングをしたいと思います。

弾:次のFirefoxでそれは実現しますか?

Resig:Firefoxに関しては(次々バージョン)4になるかもしれません。それと現在は,JavaScript関連の部分では,HTML 5.0を大きな固まりとして,実装しています。特に,オフラインアプリケーション構築するにあたっての機能を今実装しています。

弾:ちょうどニュースでMozillaのオフラインアプリケーションのフレームワークについて読んだんですけど,えーと,Prism

Resig:Prismは,通常のWebアプリケーションをデスクトップのアプリケーションに変えるためのしくみです。メリットとして,追加スクリプトが,デスクトップモードにのみ実行されるということがあります。

注2)
window.flush()はWindowを最前面にもってくるもの。yieldは,他のスレッドに処理を譲るもの。
注3)
プロセスの中でとくに重要なものを優先して実行すること。
注4)
Javaで記述されたJavaScriptのオープンソース実装。
注5)
use文。コンパイル時に実行され,モジュールで定義されているサブルーチンなどをインポートする。
注6)
let宣言は変数のスコープを制御するしくみ。ほかにlet式,let文がある。

著者プロフィール

小飼弾(こがいだん)

ブロガー/オープンソースプログラマー/投資家などなど。ディーエイエヌ(有)代表取締役。1999~2001年(株)オン・ザ・エッヂ(現(株)ライブドア)取締役最高技術責任者(CTO)。プログラミング言語Perlでは,標準添付最大のモジュールEncodeのメンテナンス担当。著書に『アルファギークに逢ってきた』(2008年5月,技術評論社)。ブログは『404 Blog Not Found』

URLhttp://blog.livedoor.jp/dankogai/