世の中には多くのプログラミング言語があります。なぜJavaScriptを使うべきなのでしょうか? この章では、プログラミング言語を選択する際に重要な7つの側面を考察し、JavaScriptが全体的に優れていると主張します。
JavaScriptエンジンの間の言語互換性はかつて問題でしたが、ECMAScript仕様への準拠をエンジンでチェックするtest262スイートのおかげもあって、今は問題ではなくなりました。一方、ブラウザとDOMの違いは依然として課題です。そのため、通常は、これらの違いを隠すためのフレームワークに頼るのが最善です。
世界で最も美しいプログラミング言語であっても、必要なプログラムを作成できないのであれば役に立ちません。
グラフィカルユーザーインターフェースの分野では、JavaScriptはHTML5の一部であることからメリットを得ています。ここでは、HTML5という用語を「ブラウザプラットフォーム」(HTML、CSS、およびブラウザJavaScript API)の意味で使用します。HTML5は広く普及しており、常に進歩しています。フル機能のクロスプラットフォームアプリケーションを作成するための完全なレイヤーになりつつあります。たとえば、Javaプラットフォームのように、組み込みオペレーティングシステムのようなものです。HTML5のセールスポイントの1つは、クロスプラットフォームのグラフィカルユーザーインターフェースを作成できることです。これらは常に妥協の産物です。単一のオペレーティングシステムに限定されない代わりに、品質を多少犠牲にします。かつて、「クロスプラットフォーム」とは、Windows、Mac OS、またはLinuxを意味していました。しかし、現在では、Webとモバイルという2つのインタラクティブプラットフォームが追加されています。HTML5を使用すると、PhoneGap、Chrome Apps、TideSDKなどのテクノロジーを介して、これらのすべてのプラットフォームをターゲットにすることができます。
さらに、いくつかのプラットフォームでは、Webアプリをネイティブアプリとして使用したり、ネイティブにインストールしたりできます。たとえば、Chrome OS、Firefox OS、Androidなどです。
HTML5以外にも、JavaScriptを補完し、言語をより便利にするテクノロジーがあります。
JavaScriptは、より優れたビルドツール(例:Grunt)とテストツール(例:mocha)を獲得しつつあります。Node.jsを使用すると、これらの種類のツールをシェル経由で実行できます(ブラウザ内だけでなく)。この分野のリスクは、これらのツールが多すぎるため、断片化が起こることです。
JavaScript IDEの分野はまだ初期段階ですが、急速に成長しています。Web開発の複雑さとダイナミズムにより、この分野は革新の肥沃な土壌となっています。2つのオープンソースの例として、BracketsとLight Tableがあります。
さらに、ブラウザはますます強力な開発環境になりつつあります。特にChromeは、最近目覚ましい進歩を遂げています。今後、IDEとブラウザがどの程度統合されるかを見るのは興味深いでしょう。
JavaScriptエンジンは、低速なインタプリタから高速なJust-In-Timeコンパイラへと大きく進化しました。現在では、ほとんどのアプリケーションで十分な速度です。さらに、残りのアプリケーションでもJavaScriptを十分な速度にするための新しいアイデアがすでに開発中です。
mapPar
、filterPar
、reducePar
(既存の配列メソッドmap
、filter
、reduce
の並列化可能なバージョン)を使用するJavaScriptコードを並列化します。並列化を機能させるには、コールバックを特別なスタイルで記述する必要があります。主な制限は、コールバック内で作成されていないデータを変更できないことです。JavaScriptは広く使用されており、上記の両方の利点を得ています。
JavaScriptには明るい未来があることを示すものがいくつかあります。
魅力的な言語を作るものの前述のリストを考えると、JavaScriptは非常にうまくいっています。確かに完璧ではありませんが、現時点では打ち負かすのは難しいです。そして、事態は良くなる一方です。