Javaは何がすごいのか?Java Scriptとの違いは?〜素人目線で易しく解説

▼投稿をシェアする▼

こんにちは、プログラミング勉強中のきしんです。

先週まで習っていたHTML、CSS、JavaScriptは一段落して、今週からJavaの勉強に入りました。

今週はJavaって何なの?みたいな入門の内容でしたが、そこでへえ〜と思ったのが、Javaの優位性です。

そもそもはAndroidアプリはJavaで開発できると聞いてJavaの勉強を始めたのですが、

その通り、Javaは開発環境のOSと動作環境のOSを別々にできるのが強みなんです。

つまりWindowsで開発し、Androidで動かす他に、iOS、Linux、ガラケーなど様々な環境で動作させることができます。

それはインタープリタ型マシン語への翻訳をしているからなんです。

マシン語というのは本当に0と1の世界で、プログラミング言語(例えばJavaで、 System.out.println…などの記述)とは異なります。

もっと言えば、マシン語を人間が触れるようわかりやすくしたのがプログラミング言語なんですね。

そして、その「プログラミング言語→マシン語」の翻訳の方法にはコンパイラ型とインタープリタ型があります。

コンパイラ型は全部を一気に翻訳するやり方で、速いけどOSを固定するので、別のOSで動かなくなります。

逆にインタープリタ型は一行ずつ翻訳するやり方で、遅いけど、OSを自由に変えられます。

だから、インタープリタ型は融通が効くんですね。

ここからが味噌なのですが、

この説明ではJavaはインタープリタ型と思われると思いますが、違います。

実はコンパイラ型とインタープリタ型の両方を少しずつ合わせて使っているんです。

つまり、OSを変えられるギリギリまではコンパイラ型のやり方をして、OSを変える最終部分だけインタープリタ型のやり方を取り入れる事で、OSの可変性と動作の速さの両方を実現しているんですね。

Javaすごい!

ちなみに他の言語はどちらかだけだったりするので、下記のようなベン図になります。

「言語 コンパイル インタープリタ」の画像検索結果

Javaすごい!!!

Java Scriptとの違いは?

ちなみに、よく混同されるのがJava Scriptとの違いなんですが、

本当に全く、全く関係ありません。

「java java script」の画像検索結果

実はJSはもともとLive Scriptという名前だったんです。

しかし、その当時、ちょうどJavaが大ブームを巻き起こしました。

そして、Live Scriptの開発者は考えたんです。

Javaって名前つけたらバズりそうだな…

というわけで、Java Scriptに改名したんです。

無理矢理感が半端ないですよね。

ちなみに、別会社のサービスですよ?

何なら海賊版?って感じじゃないですか。

ただ、2社間で業務提携など、関係性はあったようです。

面白いもんですねえ