はじめに
パソコンを買ったばかりでJavaを1ミリも知らない人に向けて、高校、専門学校で習うかもしれない90分の授業を180秒で伝える記事です。
詳しい記事はほかの偉い人達が書いてるのでそれを読んで下さい。
この記事はあと170秒で読めます。
1. Javaとは
私の身の回りで呟かれているJavaという単語をざっくり3つに分類しました。
-
プログラミング言語
色々なアプリケーション(パソコンなどの中で動いてるソフト)を開発するための言葉です。「Java言語」というと誤解なく伝わります。開発するためには「JDK:Java Development Kit」と呼ばれる開発者向けのツール群が必要です。一応無償でも手に入ります。アプリケーションを使うだけならJDKは不要です。 -
アプリケーションそのもの
Java言語で作られたアプリケーションのことです。「Javaアプリ」というと誤解なく伝わります。マイクラであればマイクラのゲーム本体の事です。マイクラJava版とかPC版とか言われてるアレです。因みに私はPC版という表現は曖昧なのでJava版と呼んでいます。 -
アプリケーションを動かす場所
Java言語で作られたアプリを動かすための専用の場所です。「Java実行環境」「Javaランタイム」や「JRE」などというと誤解なく伝わります。実はマイクラJava版には下記画像の通りJREが付属しているので、JREの事を何も気にせずに遊べます。他のアプリケーションの場合には、そもそも「JREを準備してください。」などと言われることがあります。
2. Java仮想マシン
通常、Mac 用のアプリケーションを Windows の上に乗せても動きません。Windows と Mac では頭の形が違いますし会話する言葉も違うからです。
ですが30年以上前に、ある天才が「会話できないなら翻訳機を作れば良いじゃないの。」と呟き、その数年後に JVM(Java仮想マシン、Java Virtual Machine)と呼ばれる革命的なソフトウェアが誕生しました。
JVM というのは JRE の本体と思っておけばよいです。JVM はみんなの頭の形に合わせて良い感じにフィットしてくれる緩衝材のようなものです。アプリケーションからすると Windows や Mac のような複雑な頭の形を意識する必要がなくなり、自分を乗せている緩衝材がいつも平で座り心地が良いなぁくらいに見えています。JVM が尖った頭の形を全て吸収してくれており、アプリケーションは JVM が自分を動かしてくれているマシン(VM:仮想的なパソコン)なんだなと思って動いています。
JVM によってプログラマー達はスネオの頭の形を意識することなく、常に同じ形のアプリケーションを作ることができるようになったので、Windows でも Mac でも気にせずアプリケーションを開発して配布できるようになりました。
マイクラJava版を起動すると上記の画像のように、Javaの中でマイクラが動いていることが分かります。Google ChromeはそのままGoogle Chromeとして動いていますね。
この翻訳機、仮想マシンというアイデアは今ではとても一般的な IT 用語になり、色々なところで仮想化という単語を聞くようになっています。パソコンの中だけに限らず、DVD ドライブの仮想化、サーバーの仮想化、ネットワークの仮想化、データセンターの仮想化など。利用者から見てあたかもそこに 〇〇 があるかのように使う(ハードウェアの種類や形や住所を意識せずに使える)というのがこのアイデアの根幹です。
3. 悪いところと良いところ
Java には悪いところと良いところがあります。
-
悪いところ
JVM という翻訳機を間に通しているため、その機械専用に作られたアプリケーション(ネイティブアプリケーション)よりも少しだけ遅いです。遅いとは言っても最近は JVM の速度も改善されてきています。 -
良いところ
上で書いた通り、色々な環境で同じアプリケーションを動かすことができます。また、JVM 自身もソフトウェアなので複数の JVM①② を入れて動かしたいアプリケーションによって使い分けることができます。例えば Java 版のマイクラであればマイクラに元々付属しているものを使っても良いですし、自分で入れた最新バージョンの Java を使うこともできます。Java は後方互換性が高いので、最新版の Java を入れても問題は発生しにくいですが、問題が発生する場合には、その柔軟性の高さからいつでも古い Java に入れ替えることができます。
また、Windows や Mac のバージョンが変わったとしても、Java アプリを動かしている JVM のバージョンさえ変わらなければ、50年後でも今のマインクラフトを変わらずに遊ぶことができます(できるはずです)。アプリケーションを動かす JVM 自体がアプリケーションなので、それを保存して持ち運ぶことで、何十年経っても別の場所でアプリケーションを動かすことができます。アプリケーションを作る人にとっても必ず動く環境が1つ保証されるというのはとてもありがたいです。
まとめ
私はこの記事を読むのに210秒かかりました。