私は今週企業内で JS で起こっていることを目にしたことに触発されてこの投稿を書きました。 10 年前、JavaScript がほぼユビキタスになるとは想像もしていませんでした。 JavaScript に注意を払う必要がある理由をいくつか紹介します。
まず、JavaScript が人気を集める主な理由の 1 つは、JavaScript が非常にアクセスしやすいことだと思います。 JavaScript の学習は初心者にとっては比較的簡単ですが、上級ユーザーにとっては非常に強力であり、JavaScript を使用して複雑で信頼性の高いシステムを構築できます。
第二に、JavaScript に注意を払う必要がある理由は、JavaScript が今日どこにでも使われているからです。
JavaScript を使用すると、クライアント側アプリケーション、サーバー側ビジネス ロジック、組み込みチップ/IoT デバイス、ビルド スクリプトと依存関係の管理など、ほぼすべてのプラットフォームで開発できます。
ただし、すべての状況でまったく同じコードを使用できるという意味ではありませんが、同じスキルセット (JavaScript 開発) を使用して、複数のパラダイムにわたるソリューションを提供できます。
JavaScript を使用すると、クライアント アプリケーション/ユーザー インターフェイスだけでなく、幅広いプラットフォームやデバイスにわたるユーザー インタラクションをサポートできます。
もちろん、JavaScript が Web をサポートしていることは間違いありません。 JavaScript は、すべての Web ブラウザの基本的なスクリプト言語です。
JavaScript を使用して、ローカル デバイスにインストールされたモバイル アプリケーションをサポートすることもできます。
Apache Cordovn/PhoneGap - PhoneGap または Cordovn を使用して、ローカルにインストールされた Web テクノロジー アプリを構築できます。 PhoneGap は Adobe の Cordovn ブランドのフォークですが、開発者の観点から見ると、基本的には同じです。モバイル デバイス上で実行されるアプリケーションには Web ビューがあり、ユーザー インターフェイスは動的 Web アプリケーションと同じ方法で構築されます。ユーザー インターフェイスは HTML および CSS スタイルを使用して実装されますが、すべてのインタラクションは JavaScript を使用して作成されます。
React Native – JavaScript を利用した Web アプリケーションには、単なる組み込みの Web ビュー以上のものを含めることができます。 React Native フレームワークを使用すると、開発者は JavaScript と宣言型 UI 要素を使用してアプリケーションを作成し、モバイル デバイス上で実行できるネイティブ アプリケーションを作成することもできます。実行時にロジックは JavaScript として解釈されますが、ユーザーが操作するものはすべて (すべての UI 要素) 100% ネイティブであり、非常に高品質のユーザー エクスペリエンスを提供し、iOS および Android アプリ プログラムでも利用できるようになりました。
Unity 3D - Unity 3D エンジンを使用すると、JavaScript ですべてサポートされている場合でも、カラフルで没入型のモバイル 3D シミュレーションやゲーム エクスペリエンスを開発できます。
NativeScript - クロスプラットフォームのネイティブ iOS、Android、Windows モバイル アプリケーションの構築に使用できる JavaScript を使用したフレームワーク。
デスクトップアプリケーションもJavaScriptから除外されません。ほとんどのデスクトップ ソリューションは、Apache Cordovn と同様のカテゴリに分類されます。最終的には、Web ビューには低レベルの API があり、コンテンツ開発は Web テクノロジーに基づいています。
Electron - GitHub の Node.js + Chromium デスクトップ アプリケーション コンテナー
app.js - Node + Chromium デスクトップ アプリケーション コンテナー
nw.js - 別の Node + Chromium デスクトップ アプリケーション コンテナー用のフレームワーク
CEF - Chromium Embedded Framework - Chrome ブラウザのデスクトップ アプリケーションに組み込まれたフレームワーク。
…待て。ちなみに、純粋に HTML/JS だけを使って Windows アプリケーションを構築する方法については、Microsoft がすでにソリューションを提供していたことを覚えていますし、さらに多くのソリューションがあったと記憶していますが、今ではそれらすべてを一度に思い出すことはできません。
実際、Slack、Atom、VS Code などの私のお気に入りのデスクトップ ツールのいくつかは、実際には Web テクノロジーと HTML/JS に基づいています。
最も注目に値するのは、Chrome の V8 JavaScript エンジンをカプセル化する JavaScript ランタイムである Node.js で、サーバーサイドの開発と企業において大きな進歩を遂げました。 Express.js やloopback.io などのフレームワークを利用した Node.js を使用すると、サーバー側の複雑なエンタープライズ アプリケーションを JavaScript で開発できます。
JavaScript を完全に使用して、Arduino、Raspberry Pi、またはその他の小型タブレットで実行できるヘッドレス アプリを開発できます。また、JavaScript を使用して、インフラストラクチャや IoT センサーの情報フローを管理することもできます。組み込みシステムを使用してロボットを制御したり、JavaScript を使用してメディア センターに接続された TV エクスペリエンスをサポートしたりすることもできます。
先ほども言ったように… JavaScript はどこにでもあります。
どこでも JavaScript アプリケーションを構築して実行できるだけではありません。 JavaScript には、大規模で活発な開発者エコシステムもあります。
JavaScript は GitHub 上で最もアクティブな言語です。すべてのコード リポジトリの中で最もアクティブであるだけでなく、すべてのプッシュ/コミットの中でも最もアクティブです。
データの視覚化
Node.js/私たちプログラマーはなぜ JavaScript を気にする必要があるのでしょうか?.js がどれだけ成長したかを示す統計をいくつか示します。
NPM統計
Node.jsはまだ成長しています。
グラフは、Node.js と Strongloop に対する IBM の重点を示しています。 30 日間で 2 億 4,200 万個の @私たちプログラマーはなぜ JavaScript を気にする必要があるのでしょうか?js パッケージ! http://t.co/snDt88HQC5 pic.twitter.com/nRMwYyKmdo
— Rod Boothby (@rod11) September 10, 2015
しかし、だからといって、JavaScript があらゆるものに最適な言語であるというわけではありません。ソースコードの一部を取り出しても、それがあらゆるデバイスやコンテキスト上で思い通りに動作するというわけではありません。
ただし、JavaScript テクノロジーを使用すると、ほぼあらゆるタイプのデバイス/コンテキスト向けに開発できます。もちろん、React.js チームの言葉を借りると、一度書いたらどこでも実行できるというわけではありません。
以上が、私たちプログラマーが JavaScript コンテンツに注意を払う必要がある理由です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。