みなさん、こんにちはー

今日のおやつはヨーグルト!え?これじゃあ、テンションあがらないって?ごめーん。ま、たまにはヘルシーにいきましょ!

今回は「Javaの特徴」として必ずでてくる「マルチプラットフォーム」について説明します。ちょい長めですが、気楽にね
(ちなみに「プラットフォーム非依存」とか「プラットフォームに依存しない」と表現されることもありますが、みんな言っている内容は同じことですよ。)今回の内容に関しては、知らなくてもプログラミングはできます。が、いちおうJavaの大きな特徴の一つなので、知っていたほうがよいかもね、というものです。なので気楽にとらえてくださいねー。
あと、1回説明を読んだだけでは「なんでこうなってんの?」と思うかもしれません。実際のプログラミングをしていないうちに、Javaの特徴を理解しようとしてもなかなか難しいんですよね。だから、今回のテーマについてはいちおう目を通しておいて、1ヵ月後くらいにもう一度読んでみるといいかもしれません。
【マルチプラットフォームのしくみ】
マルチプラットフォームについて考えるときには、マルチプラットフォームに対応している場合と対応していない場合にわけて比較すると、ちょっぴりわかりやすくなるかもです。ちなみに「プラットフォーム」というのは、ここではコンピュータのOSのことだと考えてくださいね。みなさんが使っているコンピュータ(パソコン)でもWindowsとかUNIXとかいろいろなOSがあるでしょ?ケータイとかスマホでもiOSとかAndroidとかいろんなOSがあるよねー。で、「マルチ」っていうのはいろいろなって意味合いです。
【マルチプラットフォームに対応していない場合】
で、まずJavaより古いプログラミング言語ではマルチプラットフォームというものに対応してませんでした。(そもそもそういう発想がなかったんだよねー。)そのためプログラムを作るときには、WindowsとかUNIXとかLinuxとかいろんな種類のOSに応じてそれぞれプログラムを作る必要があったんですね。

図1 左側のWindows用のプログラム(オレンジ色)はWindows上で実行できるし、まんなかのUNIX用のプログラム(緑色)はUNIX上で実行できます。
それぞれのOS(プラットフォーム)でそれぞれプログラムを作って利用している時代には、特に困ったことも不便なこともおきませんでした。それぞれ作ればいいじゃん!って感じで。(むかしはコンピュータ1台がめっちゃ高額だったから、一人で何台も所有してる、みたいな状況はないわけです、あんまり。)
でももし、これまでWindowsで使っていた「超べんりなプログラム」があるからこれをUNIXでも使いたいなーって思っても(たとえばWordとかExcelとかをUNIX上でも使いたいなーと思っても)そのプログラムをUNIX上で実行できなかったんですよ。で、どーしても実行したいのよー、と思ったらUNIX用にプログラムを作り直さないといけなかったんですよ。
これって超めんどくさそうでしょ?

図2 左側のWindows用のプログラムをUNIX上で実行しようとしても(水色の線のところ)、そのままでは実行できません!
つまり特定のOS用に作ったプログラムは、別のOS上では実行ができません、ということ。
(スマホとかでもそうでしょ?iPhone用(iOS用)のアプリをAndroid上で実行はできないよね。だから、アプリを利用するときはiPhone対応とかAndroid対応とかをちゃんと調べてから利用するでしょ。)
でもね、Javaみたいにマルチプラットフォーム対応だと、こういう問題は起こらないんですよ!(どーゆーこと?と気になったら次をみてね。)
【後編】マルチプラットフォームってどうゆうこと?(2/2)