突然ですが皆さん、こう思ったことはありませんか?
結局、Java と JavaScript の違いってなんなの??
人によって、ハムとハムスターだったり、そばと焼きそばだったりします。
(ついでにTypeScriptのことを「型焼きそば」と言ったり……)
でもそれって、ニュアンス的に正確じゃない気がします。
なので今回は、Java と JavaScript(ついでにTypeScript) の違いを適切に解説します!
一応、出来る限り正確に書きますが、間違いがあればコメントいただけると幸いです…
Java と JavaScript の違い
使用用途
-
Java
- 主にサーバサイドの言語。処理ロジックを担当することが多い。
-
JavaScript
- 現状、どちらでも扱うことが出来る。1
- TypeScript
- JavaScript 同様、現状はどちらでも扱うことが出来る。2
(とはいえ JavaScript と TypeScript もまたプログラミング言語なので、何かしらの処理はします)
つまり、
Java と JavaScript は「似て非なるもの」
です。
恐らくですが、ここからハムとハムスターなる例え話が生まれたのではないでしょうか。
そしてこれが間違いの始まりです。
では具体的に何が違うのか。
一歩踏み込んでみましょう。
Java と JavaScript の歴史
Java はサン・マイクロシステムズ社が開発したプログラミング言語です。
一方で LiveScript(現JavaScript) はネットスケープコミュニケーションズ社が開発したプログラミング言語です。
そして1995年当時は Java が大流行していました。
さらに、上記2社は業務提携していました。
──ここからが個人の感想です──
結果的に、ネットスケープコミュニケーションズ社は Java の知名度にあやかり、
サン・マイクロシステムズは「今後 JavaScript が有名になれば、うちが手がけた言語として名を残せるぞ」
こう考えたのではないでしょうか。
事実として、たくさんの人々が
「Java と JavaScript の違いって……?」
と、術中にハマっているわけです笑
結論
Java と JavaScript を例えるなら、
東京ディズニーランドは、東京にはない(ただし、どちらも日本国内にある)
と同義
というのが適切だと考えました。
もう少し踏み込むと、 JavaScript は Java の影響を受けて作られたものではありません。
東京ディズニーランドは、東京都公認の国の施設ではないですよね?
しかも、東京ディズニーランドは娯楽施設で、東京都は地域の区分です。
名前が似てるのに、中身は全然違います。
また、TypeScript と JavaScript の関係性として、
イラストをラフから描くのか、いきなり描くのかの違い
というのが、適切だと考えました。
TypeScript は、JavaScript をコーディングする際に、記述ミスを減らせるようにコンパイルするようにしたものなので、このような表現にしました。
その他
要するに、関係性を第一にした例え話をするのか、
本記事のように正確性を求めるのかによって表現は変わると思います。
ですので、一概に「これが正しい」「これは間違ってる」を論ずるつもりはないです。
とはいえ、私の例え話が間違っているということであれば、コメントにてご教授いただけますと幸いです。