はじめに
パソコンを買ったばかりで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が自分を動かしてくれているパソコン(VM:仮想的なパソコン)として振舞ってくれている訳ですね。
JavaのアプリケーションはこのJVMの上で動いており、プログラマー達はスネオの頭の形を意識することなく、常に同じ形のアプリケーションを作ることができるようになったので、WindowsでもMacでも気にせずにアプリケーションを開発して配布できるようになりました。
マイクラJava版を起動すると上記の画像のように、Javaの中でマイクラが動いていることが分かります。Google ChromeはそのままGoogle Chromeとして動いていますね。
この翻訳機、仮想マシンというアイデアは今ではとても一般的なIT用語になり、色々なところで仮想化という単語を聞くようになっています。パソコンの中だけに限らず、DVDドライブの仮想化、サーバーの仮想化、ネットワークの仮想化、データセンターの仮想化などなど。利用者から見てあたかもそこに〇〇があるかのように使う(ハードウェアの種類や形や住所を意識せずに使える)というのがこのアイデアの根幹です。
3. 悪いところと良いところ
悪いところ
JVMという翻訳機を間に通しているため、その機械専用に作られたアプリケーション(例えばWindows用のマイクラ統合版:ネイティブアプリケーション)よりも少しだけ遅いです。良いところ
上で書いた通り、色々な環境で同じアプリケーションを動かすことができます。また、JVM自身もソフトウェアなので複数のJVM①②等を入れて動かしたいアプリケーションによって使い分けることができます。例えばJava版のマイクラであれば、マイクラに元々付属しているものを使っても良いですし、自分で入れた最新バージョンのJavaを使うこともできます。
また、WindowsやMacのバージョンが変わったとしても、Javaアプリを動かしているJVMのバージョンさえ変わらなければ、50年後でも今のマインクラフトを変わらずに遊ぶことができます(できるはずです)。アプリケーションを動かすJVM自体がアプリケーションなので、それを保存して持ち運ぶことで、何十年経っても別の場所でアプリケーションを動かすことができます。アプリケーションを作る人にとっても必ず動く環境が1つ保証されるというのはとてもありがたいです。
まとめ
私はこの記事を読むのに210秒かかりました。