JavaScriptの誕生


JavaScript(元々の名称はMocha、その後LiveScriptになり、いまのJavaScriptとなった)は1995年にNetscape(ネットスケープ)社のブレンダン・アイク氏が開発しました。
当時、最も有名だったWEBブラウザのNetscape Navigator(ネットスケープ ナビゲーター)に搭載されたのが起源です。
その後、JavaScriptの使用を断られたMicrosoft(マイクロソフト)社が、JavaScriptと互換性を持たせたJScriptを開発し、Internet Exploler(インターネットエクスプローラー)に搭載しました。
両社の争いを俗に、第一次ブラウザ戦争と呼び、今もなお続く争いの皮切りとなりました。


JavaScriptとは?


90年代の当時は、HTMLとCSSだけの静的なWEBサイトが主流で、文字だけで構成されたクラシックなページのWEBサイトが溢れていました。しかし、JavaScriptが誕生したことによってWEBサイトにリッチな表現を追加できるようになり、次第に注目され始めました。
当時では、主に下記の機能が実装可能になりました。

  • 動的なHTML生成
  • 入力フォームの設置
  • アニメーション
  • サーバーとの通信

ブラウザベンダーの競争とECMAScript(エクマスクリプト)の誕生


ブラウザベンダー各社が、他のブラウザとの差別化を図るために、JavaScriptを使用してブラウザの独自機能の開発を進めました。
そのことによって、一口にJavaScriptと言ってもInternetExplorer(インターネットエクスプローラー)で動くJavaScriptなのか、Firefoxで動くJavaScriptなのか、同じ言語で書いている筈なのにブラウザ毎に書くコードを変えなければ正常に機能しない問題が生まれました。
ブラウザごとに仕様が異なることによって、開発者の負担が大きいだけでなくセキュリティ面にも悪影響を及ぼす問題が出てきた流れから、次第に標準化への動きが現れてくるようになります。
そして、1997年に国際標準化団体ECMAインターナショナルがJavaScriptのコアな部分を標準規格化し、ECMAScriptと呼ばれるようになりました。
ES5やES6という表記はECMAScriptのバージョン5、バージョン6であることを意味しています。


ライブラリについて


JavaScriptでもっとも有名なライブラリであるjQueryの誕生を軸として話を進めます。
先述したように、WEBサイトでリッチな表現を可能にするプログラム言語として、JavaScriptは注目されました。
ECMAScriptによって標準化されましたが、それでも初心者には複雑を極めていました。
そこで、ブラウザー毎の差異を簡単に埋め、簡単にコーディングを行えるようにするためjQueryというライブラリが誕生しました。
ライブラリは、あらかじめプログラムされたJavaScriptファイルを外部からWEBサイトに読み込むだけで簡単に利用することができます。
インターネットには、jQueryの他にも数多くの優良なライブラリが存在しています。それらは全てコピーペーストするだけで利用することが出来るのです。


サーバサイドのJavaScript、Node.js(ノードジェイエス)について


2009年にライアン・ダール氏によってサーバーサイドのJavaScriptであるNode.jsが開発されました。
サーバーサイドのJavaScriptが誕生したことによって、サーバーサイドとクライアントサイドを同じ言語で開発できるようになったことが魅力的です。
Node.jsが開発された背景には、Google Chromeが2008年に公開されたことが大きく関係しています。JavaScriptは実行速度が遅いことで開発者から懸念されていました。しかし、Google ChromeにはJavaScriptの実行エンジンであるV8が実装されていたことにより、これまでのブラウザよりもページの表示速度が速くなりました。
この、高速なV8エンジンが登場したことにより、Node.jsを実用レベルまでの開発へ押し上げました。
そのほかにも非同期処理が可能になったことにより、通常、サーバーとのデータのやり取り(Input/Output)が行われている時は、制限がかかるため多くのユーザーがサーバーを利用するとデータの通信速度が遅くなっていましたが、非同期ではI/O待ちの間も処理をしてくれるため処理速度の遅延が少なくなりました。
Node.jsで開発されたサービスの代表例として、PayPal(ペイパル)、Uber(ウーバー)があります。
それぞれ、クライアントとサーバー間の不具合を改善させるため、膨大なネットワークリクエストを運用するためにNode.jsを採用しています。


ビルドツールについて


先述した、Node.jsは環境を整えなければ利用することが出来ません。
ソースコードを元にして、実際に動くプログラムを作る必要があり、その処理のことをビルドと呼びます。
ビルドを実行するためには、ビルドツールを使用します。
開発用のサーバーを用意するか、PCに搭載されているターミナルを利用してコマンドラインからコマンドを実行してビルドを行います。
また、仮想サーバーをローカル環境に建て、ローカル上でWEBアプリケーションを開発することもできるようになるので非常に便利です。
ビルドツールを使用することで下記のことが可能になります。

  • 最新のJavaScript仕様を利用できる
  • ファイルの結合やコードの圧縮などを自動化できる
  • Gitを使用しバージョン管理ができる
  • SassやPug、ベンダープレフィックスの自動化など記述を簡略化できる
  • 利用しているモジュールやライブラリなどのバージョン管理を自動化できる

フレームワークについて


現在、有名なJavaScriptのフレームワークは、Googleが開発しているAngularJS(アンギュラー)、元Googleのエヴァン・ヨー氏Vue.js(ビュー・ジェイエス)、Facebook社がオープンソースで開発しているReact.js(リアクトジェイエス)があります。
これらのフレームワークを利用するには、先述したNode.jsの開発環境を使用することが大前提にあります。
JavaScriptのフレームワークは、基本的に全てのプロジェクトに導入できますが、WEBアプリケーションを開発する際に莫大な力を発揮します。
これまでのJavaScriptは、DOM構造の一部を動的に変化させるために利用されてきたのに対して、SPA(シングルページアプリケーション)を始めとして、ユーザーの入力によってページがパーツ単位で常に変動する必要があるアプリケーションなど、JavaScriptで実現できることが増えたために、扱うデータが膨大になり、サーバーとの接続も管理する必要が出てきました。そのため、再現性があり標準化されたシステム、すなわちフレームワークが必要になりました。
フレームワークを利用することによって以下のメリットがあります。

  • 共通して使われる機能をパッケージングしてモジュール化することにより、足りない部分にフォーカスして開発時間を短縮できる。
  • フレームワークが提供するルールに則って開発することにより、信頼性・保守性の品質を均一化させることができる。
  • 運用、保守時においても、共通のルールを学びさえすれば、当事者でなくともメンテナンスできる
PAGE TOP