何故JavaScriptがアメリカで人気か
このブログでは何故JavaScriptがアメリカで人気なのか、その理由の一つ「ReactJS, VueJS, ANgularJS、NodeJS」について簡単に説明します。
まずフロントエンドのフレームワーク、ReactJS, VueJS, AngularJSについてです。
HTMLタグがずらっと並んだWebページはもう時代遅れ?
WebページはHTMLとCSSで書かれている必要があります。しかし、この二つの言語はインタラクティブなものを作るのには不向きです。例えば、カーソルをボタンの上に持っていくと色が変わる、というくらいまではCSSでできますが、ボタンに書いてあるテクストを変更するとか、ユーザーにタイプしてもらった内容のテクストをページに表示する等々の複雑なイベントのハンドリングに関してはHTMLとCSSでは不可能です。そこでJavaScriptがページをよりインタラクティブにするために開発されてきました。しかし理由はそれだけではありません。
AngularJS, ReactJS, VueJSはサーバーサイドレンダリングを可能にしてWebページの生成スピードを早めた
と一言に言うと誤解があります。正確に言うとほとんどの新しいPCや携帯電話、タブレットでは早くなりましたが、そうでない古い機器をお持ちの場合は逆の効果が起きます。理由を簡単に説明しましょう。
サーバーサイドレンダリングとは?
まず、クライアントレンダリングとは、ウェブサイトのレンダリングをクライアントのコンピューター、つまりフェイスブックにユーザーがアクセスしたら、フェイスブックのHTMLファイルをダウンロードしますね。その際に自分の使ってるコンピューターがJavaScript(JS)やPHPをレンダリングしていました。しかし、そのJSファイルをサーバーのコンピュータが計算してその計算結果をユーザーに送ってくれるのです。何故こうなったのか?ブラウザはHTMLやCSSを読み込むのに適しているのですが、JSを読み込むのに適していないのです。ですので、JSはサーバーが計算してくれた方が能率が良いのです。Googleが検索エンジンでJSを認識するようにする、と発表してからは一転してサーバーサイドレンダリングの時代がやってきました。また、GoogleはAngularJSと言うライブラリを発表して、JSでフロントエンドを書く時代が始まりました
スピードが遅いと何が問題になるのか?
- SEO Search Engine Optimization サーチエンジンオプティマイゼーション
- ユーザーエクスペリエンスデザイン
開くのに時間のかかるウェブサイトは、検索ロボットも人間も嫌いなのです。JavaScriptを使えばこの二つが解決でき、ウェブ開発は益々「より早く」、「効率よく」と言う競争をsています
理由はこれだけではありません。ReactJSがバーチャルDOMを使用したことにより、JSがより早くなり、AngularJSも後にバーチャルDOMを導入。今フロントエンドを書く3大ライブラリ、フレームワークの全て(AngularJS, ReactJS, VueJS)がバーチャルDOMを使用しています。
また、Single Page Application-シングルページアプリケーション(Webページの情報の部分に変更があった場合、Webページ丸々サイド読み込むのではなく、必要な部分だけ読み込めるようにする技術)が、これらのライブラリやフレームワークが可能にするので人気である理由の一つです。
フロントエンドをJavaScriptで書けば、ライバルがだしぬける理由がお分かりいただけましたでしょうか?
しかしながら、こうしたフレームワークやライブラリーはHTMLに比べて使いこなすのに時間がかかり、より時間のかかるトレーニングが必要であり、アメリカではWebプログラマーの給料は日本に比べてかなり高いのです
リアクトを学びたい方、はリアクトが準備した日本語のチュートリアルウェブサイトがあるので、このリンクで学びましょう
NodeJSとは?
JavaScroptを語る上で忘れてはいけないのはNodeJSです。NodeJSはサーバーサイドの言語ですが、バックエンドの言語の中では格段にスピードが早く、フロントとサーバー言語が同じ言語で書かれることが出来るようになり、能率よくプロトタイプが作れるようになりました。NodeJSには欠点もあり、アメリカのほとんどの企業が使っている、という訳ではありませんが、インターネットオブシングス、やバーチャルリアリティー、オンラインゲームなど、スピードが必要なアプリでよく使われる言語です。