多くの人がセキュリティ上の理由からブラウザの JavaScript を無効にしていた時代を覚えていますか? 今日、それは馬鹿げています - JavaScript がウェブの世界を席巻しているという単純な理由からです。プラットフォームが多様化した新時代のコンピューティングには、どのデバイスのブラウザでも動作するアプリが必要です。ネイティブアプリは、JavaScript では実現できない、より高速で、よりプラットフォーム固有の機能を呼び出せるかもしれませんが、クラウドの時代が到来していることは否定できません。このことを念頭に置いて、あなたは特定のプラットフォーム向けにデスクトップやモバイルアプリを書くことに固執したいのでしょうか、それとも考え方を広げて JavaScript を使ってどのプラットフォームでも使えるアプリを開発したいのでしょうか?
もちろん、この質問に対する正確な答えはアプリケーションの実際の特性に依存します。 JavaScriptにはいくつかの制限があります - セキュリティ上の理由から、クライアントサイドでファイルを読み書きすることはできません。そして、"本物の "プログラマーはこれらの欠点を常に強調する傾向があります。しかし、JQueryやその他多くのフレームワークの出現により、JavaScriptは複雑なアプリケーションを構築する能力を手に入れ、JSONはデータ転送のためのXMLを完全に置き換えることができるようになりました。言うまでもなく、Node.jsはInfoWorld Bossie Awardsの****ラウンドを受賞したばかりで、JavaScriptがサーバーサイドに強力にプッシュするのを助けています。
JavaScriptはどこまで使える?
偶然にも、同時期にInfoWorldのNew Technology Forumに2つの記事が掲載され、どちらもJavaScriptの可能性に焦点を当てていました。Thibault Imbertによるものです。JavaScript Beats Native Code on Mobile」では、ブリックリン氏が、JavaScriptはネイティブコードよりも実行速度が遅いという仮定に反論しています:
現実には、ネイティブコードでできる数学的な実行はJavaScriptでもできます。これは、JavaScript ベースのアプリケーションが、様々な異なるタイプの実行や計算において、しばしばネイティブコードと同等かそれ以上の性能を発揮するという事実を無視しています。
ブリックリンは、賢明なプログラマーたちが、このような実行速度を最適化するために、何年も前からブラウザに手を加えてきたからだと説明しています。さらに、ブラウザ内の高度な実行機能にも大きな改良が加えられており、3Dレンダリングがその特徴です。
JavaScriptエコシステム
JavaScriptの勝利は業界を刺激しているようで、毎週のように新しいフレームワークが登場し、JavaScript開発に関連するその他のツールも登場しています:
ANGULARJS:静的なHTMLページを、MVCアーキテクチャをサポートするJavaScriptアプリケーションに変換するためのツールセット。 BACKBONE.JS。アプリケーションに構造を追加し、データをモデルとして表現するためのJavaScriptライブラリです。 BOOTSTRAP:JQueryとのインターフェイスとして設計されたWebデバイス用のフレームワーク。 ENYO: HTML 5/CSSアプリケーションを作成するために使用できるオブジェクト指向JavaScriptフレームワーク。 D3:プラグインなしでベクターグラフィックスをブラウザにプッシュするJavaScriptライブラリ。 EMBER.JS:豊富な機能を持つMVCアプリケーションを開発するための有望なJavaScriptフレームワーク。 C++をasm.jsに変換するコンパイラーソリューション、EMSCRIPTEN。 JavaScriptには数多くのサポートツールがあります。
これらのほとんどはオープンソースプロジェクトであり、これらのツールの継続的な拡張が JavaScript の力強い勢いの重要な原動力となっています。
しかし......JavaScriptそのものはどうでしょう?
InfoWorldのAndy Oliver氏は、熟練した開発者には抵抗があると述べています:
JavaScriptは、常に代替開発パスのメンバーです - 実際にすべきことは、それがあなたのニーズに合っているかどうかを検討することです......私が話したマネージャーは、JavaScriptが好きです。開発者がjQueryやNode.js、さらにはMongoDBを使ってデータベーストランザクションの一部を処理できるからです。しかし、私の周りにいる開発者たちは明らかに違う見解を持っていて、彼らはJavaScriptの開発を日夜嫌います......開発プロジェクトのリーダーたちも、JavaScriptは貴重なデータベース機能の多くを犠牲にしているため、同じように抵抗しています。
言い換えれば、JavaScriptはプログラミングを民主化するものであり、習得は簡単ですが、開発には限界があります。
しかし、優秀なJavaScriptプログラマーが徐々に増えてきており、彼らの多くはasm.jsやIntel RiverTrail並列プログラミングモデルのサポートで優れた作品を作ることができます。そして、彼らが仕事に関連するツールの不足に苦しんでいないことは間違いありません。しかし、最終的にベストが勝つとは限りません。x86命令セットにとって、****まで笑い飛ばせるのは、****まで生きられる唯一のものかもしれません。JavaScriptが、例えばMicrosoft Officeに匹敵するような全体的に豊富な機能を持つ複雑なアプリケーションの構築に取り組む開発者のために、どのように拡張していくのかはわかりません。しかし、ブラウザウィンドウを通して世界を見ることはちょっと厄介なことであることを考えると、少なくとも私個人はそのようなプロジェクトにお金を投資することはないでしょう。