そもそも前提として、javascript, jQuery、node.js, React, AngularJS, Electronはそれぞれ別ものなので、同じレイヤーで考えるべきではない。
#プログラミング言語: Javascript
ECMAScript、いわゆるJavascriptはプログラミング言語の一種である。
同期処理の煩雑さ、クラスやオブジェクトの定義の曖昧さ、型管理の難しさなどの"欠陥"から、Javascriptを代替する新たなプログラミング言語AltJSをいろんな方が開発されている。
AltJSの多くはJSと互換性があり、JSにコンパイルできます。
例)
- TypeScript (Microsoft)
- CoffeeScript (Jeremy Ashkenas, et al.)
- Dart (Google)
(などなど...)
#実行環境: Node.js
Node.jsはJavascriptを実行する環境です。
Javascriptは通常ブラウザで開いた時にWebサーバーからロードされ、実行されますが、
サーバー上でも実行可能にするために、Googleが開発したV8 Javascriptエンジンを元にNode.jsが製作された。
参考: Node.js - Wikipedia
#ライブラリ: jQuery など
jQueryはJavascriptのライブラリである。
ライブラリとは、
汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたものである。ライブラリと呼ぶ時は、それ単体ではプログラムとして作動させることはできない実行ファイルではない場合がある。
(Wikipedia より)
つまり素のJSで書くよりも少なく、可読性の高いソースコードでアプリケーションを作成できる便利なツールである。
ちなみにJSは人口が多いことから、ライブラリの数は全ての言語の中でもトップレベルの多さです、
DOM操作に強いものや、文字列計算、数学、3Dモデリングなど、各分野で様々なライブラリが公開されています。
#フレームワーク: React、AngularJS など
ReactやAngularJSはJavascriptでアプリケーションを実装するためのフレームワークである。
JSにおけるフレームワークとは、アプリケーションを実装するための標準構造に使うクラスやライブラリの集まりである。ほとんどのフレームワークでは、それぞれどれかのデザインパターン(アプリケーション構造のルール)に従って構築されている。そのため、個々のフレームワークのルールに準じた書き方をしなければなりません。
つまり、フレームワークを使えば、ハイレベルなアプリケーションを簡単に実装することができるが、ある程度デザインパターンを学習した上で、それぞれのフレームワークの仕様に従ってプログラミングしなければならない。
ちなみに、フレームワークそのものにはすでに色々なクラスやライブラリを含めているため、別のライブラリを利用する場合はそれとの相性を考えなければならない。
#マルチプラットフォームアプリケーションエンジン: Electron など
ElectronはJavascriptやHTMLを利用したマルチプラットフォームアプリケーションエンジンである。
マルチプラットフォームアプリケーションエンジンは少々長いですが、その名の通り、様々なデバイスで動作するアプリケーションを製作するためのツールです。
Webを作る感覚で、PCのソフトウェアを作ることができます。ちなみに、同じようなエンジンで、iOSやAndroid向けのアプリケーションが製作できるApache Cordovaもあります。