プログラミング言語は、時代とともに日々便利になってきています。
プログラミング言語を利用するプログラマ達が、再利用性の高いプログラムをまとめたライブラリの開発や、Webサイト作成用のフレームワークの開発などを行い、テクノロジーへの進化に貢献しているためです。

そして、JavaScriptも多くのプログラマを巻き込みながら、日々進化を遂げているプログラミング言語の一つです。今回は、JavaScriptという一つのプログラミング言語がどのように進化してきたのか、エコシステムについて解説していきます。

エコシステム

そもそもエコシステムとは何でしょうか?

エコシステムとは、生態系を意味し、元々は自然界において使われる言葉でした。同じ領域に生息しているさまざまな生物たちが、お互いに依存しながら暮らしているように、その暮らす環境や生物同士の繋がりのことを日本語で生態系、英語でエコシステムと呼んでいます。

現在では、テクノロジーの世界でもエコシステムという言葉が用いられるようになりました。
例えば、「ビジネスのエコシステム」のように、ビジネス全般の関係性や概念を表す場面や、「Googleのエコシステム」など、企業名で語られる場面があります。

プログラミング言語においても、他の企業やサービスなどと連携することによって、どんどん使いやすくなっています。このように、さまざまなものがお互いに支え合い、利益をもたらしている構造もエコシステムと呼ばれています。

JavaScriptのエコシステム

エコシステムがさまざまな場面で使用されているように、JavaScriptという一つの言語に対しても、エコシステムが存在します。

多くの企業や個人の貢献により、たくさんのライブラリやサービスが開発されてきた背景があります。

以下は、JavaScriptのエコシステムの中で生まれてきたものの例です。

-ビルドツール
・gulp
・webpack

-ライブラリ/フレームワーク
・React
・jQuery
・Vue.js

言語の拡張
・TypeScript
・Node.js

パッケージマネージャー
・npm
・yarn

企業の貢献
・Facebook
・airbnb
・Google
・Microsoft など

上記以外にも多くのサービスが存在し、JavaScriptは需要のある代表的なプログラミング言語として認知されています。
これらのサービスと組み合わせることで、単純にJavaScript単体でコードを書いていくだけでは実現できないような、処理の自動化や再利用性の高いUI構造、またソフトウェアの管理を効率良く行うことができます。

このように、JavaScriptのエコシステムは、たくさんの用途に応じて巨大化し急成長しているのです。

クライアントサイド/サーバーサイドとJavaScriptの進化

一般的には、Webサイトにおいてユーザーのブラウザで動いているプログラムをクライアントサイドプログラムと呼び、外部のサーバーで動いているプログラムのことをサーバーサイドプログラムと呼びます。

JavaScriptは、元々ブラウザの中で動きをつけるために1995年に生まれた言語で、クライアントサイド専門として利用されてきました。
現在でも、クライアントサイドにおけるJavaScriptの重要性は高いですが、2009年にNode.jsが導入されてから、サーバーサイドでもJavaScriptが使われる機会が増えました。

Node.jsとは、かんたんに言うとサーバー側の動作を行う環境のことで、Webサーバーの構築などをかんたんに行うことができます。
JavaScriptでクライアントサイドとサーバーサイド両方の開発が行えると便利であることからNode.jsが開発され、サーバーサイドJavaScriptとも呼ばれています。

今では、国内ではDMM.comやAmebaTV、国外ではNetflixやPayPalなど、多くの企業でサーバーサイドの主要言語の一つとして利用されるようになりました。
もちろんクライアントサイド側の発展も止まりません。例えば、Electronというフレームワークを使うとデスクトップ用のアプリ開発ができたり、React Nativeというフレームワークを使うとiOSやAndroidで動かすことのできるモバイル用アプリの開発ができるようになっています。

このような背景から、JavaScriptでの利用範囲が広がっていることが分かります。
JavaScriptをマスターすると、幅広いクライアントサイド開発ができるようになるだけでなく、サーバーサイドの知識も深まり、多くのことを実現できるようになります。

まとめ

今回は、JavaScriptのエコシステムについて解説しました。

上記で挙げたライブラリやフレームワークなど、いくつかのサービスを耳にしたことがあるのではないでしょうか。
今後、当ブログでもJavaScriptで利用されているツールやライブラリなどの使い方を紹介していくので、JavaScriptのエコシステムについて役立てていただけたら幸いです。

エコシステムの関連記事

パッケージマネージャー -Npm
パッケージマネージャー -Yarn
モジュールバンドラー -webpack