最初は「Java」は付いていなかった
一方、JavaScriptを開発したのは、前述のネットスケープコミュニケーションズだ。Webページ上で動作するプログラムを実現する言語として生まれ、当初は「LiveScript」というJavaとは関係ない名前だった。同社が1995年に公開した「Netscape Navigator」に最初に実装し、他のWebブラウザーも追随した。
JavaScriptと改名した理由は、当時Javaが大きく注目されており、それに便乗するというマーケティング的な要素が大きかったようだ。どちらもWebブラウザーで動作するという共通点があったことも、似た名前にした理由の1つかもしれない。
JavaScriptは、当初は「Webページに無駄な動きをつけるもの」として不当に低い評価に甘んじていた。しかし、例えばグーグルが「Gmail」や「グーグルマップ」といった高度なサービスをJavaScriptで実現するなど、Webサイトのフロントエンドを実現する言語として不動の地位を築いた。現在は「Node.js」という実行環境を使って一部のサーバーでも使われるようになっている。
JavaScriptの言語仕様は、前述したようにJavaとはかなり異なる。具体的にはオブジェクト指向プログラミングの実現方法がJavaとは違う。また「Scheme」という言語の影響を強く受けている。
Javaのクラスベースのオブジェクト指向では、クラスといういわば「鋳型」からオブジェクトを生成する。一方、JavaScriptが採用しているプロトタイプベースのオブジェクト指向では、既存のオブジェクト(プロトタイプ)の複製でオブジェクトを生成する。ただし、最近のJavaScriptの仕様ではクラスも利用できる。
Schemeから受け継いだのは、「関数をそのまま値として扱える」という特徴だ。引数として関数そのものを受け取る関数や、戻り値(返り値)として関数そのものを返す関数を簡単に実現できる。Javaにはこうした柔軟性はない。
世の中には膨大な数のプログラミング言語があるが、広く使われているのはそのうちのせいぜい十数個程度だろう。JavaとJavaScriptは、そうしたメジャーな言語に間違いなく含まれる。
仮にJavaが使われずに消えていったとしたら、「JavaScriptはJavaと略すことが多いけれども、本当は昔Javaという言語があったんだよ」という話になっていたかもしれない。残念ながらJavaもJavaScriptも当面は消えそうにないので、これからも両者の違いを地道に説明していくしかないのだろう。