-------------------------------------------------------------------------------- 「JAVAなお話 後編(JAVAの利点)」 つくった人 柳井 政和 URL : http://crocro.com/                           最終更新:2001.01.20 -------------------------------------------------------------------------------- ●JAVAなお話  友人とやりとりした「JAVAって何?」のお話を公開用にまとめた「JAVAなお話」。  今回はその後編。2000年11月7日のメールです。  だいぶ内容を簡単にして説明していますので、上級者の方からは「厳密に言うと違うぞ !」「おい、それは強引じゃないか!」という突っ込みもあるかとは思います。  まあ、それはご容赦ください。上級者の方向けの文章ではないですので。 ──────────────────────────────────────── ●Q.なるほどね〜。    僕がこれまでJavaやと思っていたのは、全部Javaスクリプトやったんや。    そしたらJavaが一番ええような気がするけどなあ。  でも欠点があります。それは、少々実行速度が遅いことです。  通常のプログラムは、   [プログラム]→[CPU]  と直接動いているのですが、JAVAでは、   [プログラム]→[JAVA仮想マシン]→[CPU]  と動いているので、「JAVA仮想マシン」が間に入る分だけ実行速度が遅くなります。な ので、非常に速度が要求されるプログラム(3D系の高速描画を伴うもの)はJAVAで書くに は向きません。  逆にいうと、この「JAVA仮想マシン」があるおかげで、どのOSでもプログラムが動いて しまうわけです。家電なんかも、この「JAVA仮想マシン」を組み込むことで、JAVAが動く ようになります。 ──────────────────────────────────────── ●Q.Javaアプレットって何?  JAVAには、「JAVAアプリケーション」と「JAVAアプレット」の2種類があります(本当 はまだあります)。  「JAVAアプリケーション」は、いつも使っている普通のソフトと同じです。それがJAVA で書かれているだけです。  「JAVAアプレット」は、このJAVAのソフトをWeb限定にしたものです。  簡単に言うと「Webブラウザ内でだけ動くもの」です。IEやネスケの上で動くJAVAのア プリケーションが「JAVAアプレット」です。  「違うのはそこだけ?」と思うかもしれませんが、大枠はこれだけです。  ただ、「JAVAアプレット」は「Webブラウザ」=「インターネット」で使われることを 前提にしているため、いくつかの機能が制限されています。  例えば「ファイルの書き込み」ができません。これができると、極端な話「Webブラウ ザでそのページを開いた瞬間に、パソコンの中身を全部消すプログラム」なんかが簡単に 作れてしまいます。  これはまずいでしょう。同じように、悪意を持った人が使うと危険な機能は軒並み制限 されています。 ──────────────────────────────────────── ●Q.誰かが「今、一番求められているのはJava技術者や」って言ってたけど、    ホンマ?何で?  JAVAには、今まで挙げた機能も含め、3つの大きな特徴があります。 ・OSに依存しない(これまで書いてきたこと) ・インターネット対応 ・オブジェクト指向  OSに依存しないのが便利っていうのは、これまでの説明でだいぶ分かったと思います。 なので飛ばします。 ────────────────────────────────────────  「インターネット対応」が「今求められている技術」というのは体感できると思います。  JAVAは標準でインターネットを簡単に利用できるプログラム言語です。これがいかに凄 いことかというのを、具体的な例で示します。  「C」や「C++」というプログラム言語の名前は聞いたことがあると思います。  これらの言語で、まともに(便利な外部の機能を使わないで)プログラムを書いた場合、 インターネットからファイルを所得するだけのプログラムに数100行のプログラムを書か ないといけません。  JAVAなら10数行です。  時は金なりです。求められる技術が簡単に扱えた方が良いに決まっています。 ────────────────────────────────────────  次は「オブジェクト指向」。  これは「何のこっちゃ?」と、さっぱり分からないと思います。  まずは「オブジェクト指向」が何であるのかを簡単に説明し、それがなぜ求められるの かを説明します。  まずは「何であるのか」です。  「車(現実の道路を走っている車です)」を例にとって「オブジェクト指向」のプログ ラムを説明します。  テーマは「車のエンジンを入れる」です。  「オブジェクト指向でない」プログラムの場合、「車のエンジンを入れる」プログラム はこう書きます。 1.自分の周りに金属の物体がないかを探す。 2.金属の物体があれば、それが人間より大きいかを調べる。 3.人間より大きけく、かつ、ゴムの土台が4つついていればそれはたぶん車だ。 4.「たぶん車」の周囲で、手が引っかかりそうな場所を探す。 5.手が引っかかればそれを引いてみる。 6.引いた結果、「たぶん車」の内部に自分が入れれば、それはたぶん扉だ。 7.「たぶん扉」が開けば「たぶん車」の内部に入る。 8.鍵がさし込める場所を手当たり次第に探す。 9.鍵がさし込めれば、それはたぶんエンジンキーだ。 10.「たぶんエンジンキー」に入れたキーをひねってみる。 10.音が鳴ればエンジンがかかったに違いない。  以上が「オブジェクト指向でない」プログラムです。  「(?_?)」と思ったと思います。まるでお馬鹿なコンピュータが車のエンジンを入れ ようとしているような・・・。  当然です。これがコンピュータです。コンピュータはそれが「車」であることは知らな いですし、手探りでしか物事を進められません(なのでバグも良く出るわけですね(^^;)。  じゃあ、「オブジェクト指向」でやってみましょう。ちなみに「オブジェクト」とは「 物」という意味です。 1.「車」という「物」を作る。 2.「車」の「扉」という「物」に対して、「開ける」という「動作」を実行する。 3.「車」という「物」の中に、「入る」という「動作」を実行する。 4.「車」の内部にある「エンジンキー」という「物」に対して、「エンジンを入れる」   という「動作」を実行する。  だいぶ人間にとってわかりやすいと思います。  「オブジェクト指向」とは、「物」と「動作」を1つのパッケージにしたプログラムの 書き方です。  この「オブジェクト」は一度プログラムを作ると、何度でも簡単に再利用でき、他の人 も簡単に使えるようになります。 ────────────────────────────────────────  ここまで来てようやく「なぜ求められるのか」の説明になります。  「オブジェクト指向」の最大の特徴は、この「再利用性」にあります。  今までのプログラムはこの「再利用性」が非常に低く、「以前プログラムを書いた人が 会社を辞めると、もうわけがわからなくなる」とか、「前書いたプログラムを大幅に改良 しないと次の仕事に利用できない」などといったことが頻繁にありました。  これを「オブジェクト指向」に切りかえることにより、簡単に「再利用」ができるよう になりました。つまり、会社としての資産がどんどん貯まるようになったわけです。  有用なオブジェクトは、オブジェクト単位で売ることもできます。このことにより、商 売の幅も広がりました。  最近のプログラム言語が、猫も杓子も「オブジェクト指向」になっているのは、こういう 「再利用性」という「経済的価値」があるからです。 ────────────────────────────────────────  以上の3点、 ・OSに依存しない ・インターネット対応 ・オブジェクト指向  という3拍子が揃っているJAVAは、登場以来非常に騒がれ、期待されているわけです。  突き詰めると深いんですが、なるべく簡単に分かりやすくまとめてみたつもりです。  どうでしたか? (JAVAなお話 以上) -------------------------------------------------------------------------------- copyright (c)2001 Masakazu Yanai