John Resig - JavaScript, Programming, and Web Applications

Webアプリケーション開発の主要言語としてJavaScriptは日々その重要度を増している。関連フレームワークをプログラミング言語という観点で見れば、JavaScriptをそのまま使ったライブラリと他の言語でJavaScriptを隠蔽したフレームワークに大別できる。たとえば前者にはjQueryやPrototype、Dojo、Yahoo UIなどがあり、後者にはGWTPyjamasObjective-Jなどがある。隠蔽するタイプのフレームワークは自分が普段なれているプログラミング言語でWebアプリケーションの開発が可能になりこれまでの経験が活かせるほかJavaScript学習コストを削減できるというメリットがある。

jQueryの開発者でありMozilla FoundationでJavaScript Evangelistを務めるJohn Resig氏は自身のブログにおいてJavaScript Language Abstractionsのタイトルのもと、GWTやPyjamasのような隠蔽タイプのフレームワークに関する考察を掲載している。興味深い内容なのでどういったタイプのフレームワークを採用するべきか検討している場合には一度読んでみるといいだろう。

内容を要約すると、jQueryのようなJavaScriptベースのライブラリはJavaScriptを勉強するいい機会にもなるし、jQueryに限らず自分の好きなフレームワークを使って学習を進めればいい。フレームワーク自身は煩雑なJavaScriptの記述をシンプルにしてくれるし学習した結果はちゃんと伴ってくる。一方でGWTやPyjamasのように別の言語で隠蔽するタイプのフレームワークは不具合が発生した場合にJavaScriptの知識がなければ対処も回避しにくいという問題がある。JavaScriptと別の言語の両方に精通している方がいいプログラミングが可能になるが、両方に精通している場合にわざわざ別の言語を使ってJavaScriptを隠蔽する方を採用する開発者の数は少ないだろうとしている。さらに優れたスキルを身につけるには複数の言語を学ぶというのは効果的な方法であり、隠蔽タイプの言語を採用することでその機会を失うのは惜しいことだ、というわけだ。

逆にGWTやPyjamasを使う場合、JavaやPythonが提供している開発ツールやテクニックをそのまま使えるという利点がある。大規模RIAの開発にGWTが有益なのもまた事実だ。John Resig氏の考察とは逆にGoogle Web Toolkit News, Javascript Language Abstractions by jQuery creatorではGWTはRIA開発のためのDSLであり大規模RIAを構築するための欠かせないものだと説明し、大規模RIAの開発はjQueryでは難しいと指摘している。

現在のJavaScriptは大規模システムの開発には適していないとみる向きは多く、この状況はいわゆるJavaScript 2が登場しても大きくはかわらないとみられている。統合開発環境の進歩や周辺ツール、ライブラリの充実といった方向から状況は改善されると見るのが一般的だ。このためJohn Resig氏が懸念している内容を重く受け止めるか、GWTといった隠蔽タイプのフレームワークの方が効率がいいと見るかは自身の置かれた状況によって意見が分かれるところだ。しかし双方の考えを知っておくことは有益だ。検討材料としてどちらの意見も把握しておきたい。