JavaScriptによるプログラミングに関する世界観A(戯言)です。
JavaScriptフレームワークやjQueryやMozillaも参照のこと。
JavaとJavaScriptは、同じ「Java」という名前を冠していますが、両者は別物です。
元々JavaScriptはNetscapeによってブラウザ上でライブに実行されるスクリプトとして作られたもので、当初はLiveScriptという名前が付けられていましたが、当時Javaを開発していた会社であるSunとの業務提携により、Javaという名前をつけてJavaScriptという名称になりました。
今ではNetscapeという会社は無くなり、後継のオープンソースなWebブラウザの開発元はMozilla.orgになりましたし、ECMAという標準化団体によってECMAScriptというJavaScriptの標準が定められていますが、Javaとは全く別の言語です。
現在、JavaScriptはWebでは必須の言語となっています。それは、サーバーサイドではできないクライアントサイドの処理を行うために、必ずブラウザで用意されているのはJavaScriptだからです。
ですが、ブラウザはそもそもHTMLをレンダリングして観覧するためのものであり、言語処理系がメインのソフトではありません。そのため、JavaScriptの機能は、他の言語に比べると貧弱で、性能や動作も遅いです。
JavaScriptには、Webの最先端技術が多いです。特に、jQueryやNode.jsやVue.jsやReactが広く使われており、最近では必ずしも「機能が貧弱」であるとは言えず、むしろ「さまざまなAPIを使ってさまざまな高度なやり方ができる言語」になりました。
JavaScriptと一言に言っても、どの技術を利用するかによって、記述される言語要素や概念が全く違うのです。
JavaScriptは、最先端のWeb技術を学びたい「ギーク」には面白いでしょうが、一般のエンジニアにとっては、「今まで学んだJavaScriptの技術がもう古いものになっている」という状況になりかねません。
よって、一部のJavaScriptオタクの間で(特にQiitaなどで)さまざまな技術知識を共有するだけで、実際の開発には実績がなく使えない、ということも多いです。
ですが、もともとのJavaScriptは単純で、ホームページの作成などに使える、Webブラウザという名前の言語処理系が一番広く広まっている言語であり、また今一番熱い言語であると言えます。基本を知っておくことは無駄にはなりませんし、GoogleやFacebookなどの「超最先端企業」に勤めたいとか、最先端の研究がしたい人には、基本的な技術要素を知っておくと、IT業界のトレンドが良く分かるようになります。
ブラウザ上で動くスクリプト言語であることから、Googleなどがしているように、ブラウザ上でリッチなWebアプリケーションを作るために使われる。
JavaScriptでイベント駆動のプログラミングをすることで、サーバーの性能が高まるとされている。
従来では他の言語が使われていた領域でも使われるようになってきている。
CGIでは、サーバー側でプログラムを実行し、その結果をブラウザに表示して、そこからサーバー側にリクエストを行う際でも、常にサーバー側(サーバーサイド)でプログラムが実行される。
だが、JavaScriptは、HTMLのデータを受け取ってきた後で、ブラウザ側(クライアントサイド)でプログラムを実行する。
JavaScriptでは、掲示板やSNSのようなプログラムではなく、グラフィックスやAjaxなどの技術を用いて、「豪華な見た目のWebサイト」を作ることができる。
クライアントサイド(Webブラウザ側)のプログラミングを書き込む技術・言語。
JavaScriptをもっと簡単に、デザイナブルにしたようなフレームワーク。jQueryを参照のこと。
JavaScriptで動的なサーバーとの非同期通信を行う技術。Google Mapsなどが有名。Ajaxを参照のこと。
WebAssemblyを参照のこと。
現在、WebデザイナーやWebアプリケーションエンジニアが使える言語は、サーバーサイドならPerlからRubyまでたくさんありますが、クライアントサイドではJavaScriptしかありません。
僕は、クライアントサイドでも、JavaScript以外で開発できるような、そんなブラウザを作ってほしいと思います。
GoogleのJavaScript代替言語にDartがありますが、これはJavaScriptと同じようにエンジンがGoogle Chromeに搭載されるという噂がありました。また、サーバーサイドでもDartが使えるようになるという声もありました。そのような世界になってほしいです。