JavaとJavaScriptは違うよ!どう違うの?ぜんぜん違う!

JavaJavaScript違いがわかりますか?

プログラマーさんにとっては常識ですね。
でもそうではない方は、混同してしまったり、勘違いしてしまう人も中にはいるのではないでしょうか?

ハムとハムスターくらい違います

いきなり結論から言いますと、JavaとJavaScriptは、ハムとハムスターくらい違います、ほんとぜんぜん違うんです、混ぜちゃなんねえです。
プログラマーさん意外にもこのへんがなんとか伝わるよう、具体的にどういった点に違いがあるのか、説明をしてみたいと思います。

Javaとは

Javaは1995年にSun Microsystemsにより初めてリリースされたプログラミング言語およびコンピューティング・プラットフォームです。
世界的に見ても使用されている言語、習得したい言語として1位を記録するほど人気の言語です。
なぜ人気があるのかというと、「多くの現場で使用されていること」や「汎用的でOSに依存しない」と言った点が理由として挙げられるでしょう。
この「OSに依存しない」というのがJavaの大きな特徴で、通常プログラミングというのは何処で動くかが決まっており、他の環境で使用する際にいろいろややこしかったり、使い勝手が悪ったりするものなのです。
プログラマーにとってOSXなのかWindowsなのか、重要な問題です。
でも、Javaの場合は一度書いたものが、いろんな環境で使うことができるのです。
Windowsでも動くし、Macでも動くし、Linuxというものの上でも動く!どこでも動くウェーイ!
開発には、JDK(Java Development Kit)を使用しJavaの公式サイトから無料でダウンロードできます。

JavaScriptとは

JavaScriptはWebページに動きをつけるためやユーザー側のWebブラウザと、Webサイトまたはウェブサービスの相互間のやりとりを、円滑にするために使われているプログラミング言語およびクロスプラットフォームです。
Webページの外観デザインやゲーム開発など色々なところで使用されています。
例えばメインの画像がスライドショーのようになっていたり、背景の色が定期的に変わったり様々な動きを見ることができます。
一番使われているのがWebページです。
より面白いユーザー体験を作るには、JavaScriptは欠かせないものになっています。

JavaとJavaScriptの違い

まず、Webの上で動く何かのシステムやサービスを作ろうと思ったら、次の二つの場所でプログラミングを動かす必要があります。
「クライアント」と「サーバ」です。
クライアントとは、何らかのサービスを提供される側のことで、
Webの場合は、Webサーバに対して、パーソナルコンピュータがクライアントとなり、携帯電話であれば、基地局に対して利用者が持っている端末がクライアントとなります。
一方サーバーとは、インターネットやLANなどのネットワークを通じて受けた要求(リクエスト)に応じて、何らかのサービスを返す役割を持ったシステムのことです。
Javaはどこでも動くのでクライアントでも動いてはいたのですが、現在は基本的にクライアントで動くのはJavaScriptというプログラミング言語だけです。
反対にJavaはサーバーで動いており、ユーザーの情報の登録、削除など内部処理を行っています。
つまり、JavaとJavaScriptはプログラムの動く場所が明確に異なります。
なおかつ、先に挙げた特徴のように、用途や目的も大きく違うプログラミング言語、ということなのです。

なにゆえ名前が似ているのか

そもそも、JavaとJavaScriptの名前が似ていることが多くの勘違いを生む原因です。
どう見ても、お仲間に見えるじゃないですか、何だったらJavaの活用形(?)くらいに見えちゃうじゃないですか。
この名前がこれほどまでに似ているのは単なる偶然なのか?
…実はそうではありません。
JavaScriptが開発された当時は、LiveScriptとという名前で呼ばれていました。
こちらが本来の名前です。
そして開発された当時、少し前に開発されたJavaというプログラミング言語が大きな注目を浴びていました。
察しのよい方はこの時点で「まさか…」と思ったかもしれません。
そうです。
これに便乗したいLiveScriptの開発者たちは、言語的には何にも関係性は無かったのだけれど、JavaScriptという名前に変更(!!!!!)しちゃったのです。
こうしてしれっと現在に至ります。
迷惑な話です。

まとめ

上記でJavaとJavaScriptの違いについて話してきました。
Javaというプログラミング言語と、JavaScriptというプログラミング言語が「ハムとハムスターくらい違う」という認識を持ってもらえましたでしょうか。
汎用性高く本格的なプログラミングを行うのがJava
Webなどで動的な表現を可能とするのがJavaScriptです。
二つは種族も住処も全く違う、名前が似てる(似せた)だけの別のものなのです。

コメント