Javaについて

          


[Javaランタイムのインストール]   [Javaアプレットをホームページに挿入]

 わたしがJavaにはじめて出会ったのはwindows95を使っているころでした。もうかなり昔のことになりました。しかし,Javaのプログラミングにずっと取り組んでいるわけではなく,興味が出てきたときに集中して2,3ヶ月プログラミングしてみてひと段落したら,また数ヶ月ブランクがあくという繰り返しです。ですから,ぜんぜん上達しません。ここで偉そうに「Javaについて」と書いていますが,まだまだわからないことだらけです。

 私が始めてプログラミングというものにふれたのは,20年以上前で,その当時「ポケットコンピュータ」なる呼び名で売られていた電卓に毛が生えたようなものでした。BASICで数学の公式などをプログラミングしていました。
 その後,n88−BASIC,QuickBasic,QuickCなどで少しずつ勉強していましたが,深まらないうちにMS−DOSの時代が終わり,これらのソフトが使えなくなりました。

 Windowsの時代になっても,たまに,プログラミングをしてみたいと思いましたが,その当時は Visual Basic や Visual Cは結構高価で,なかなか手が出せませんでした。そんなとき,書店でパソコンコーナーをなにげなくながめていると「Java」という文字が目に入りました。それまで「Java」という言葉は聞いたことがなかったのですが,どうもプログラミングに関係があるようなので,手を伸ばしてみました。しばらく立ち読みをしていると,Javaのプログラミングに必要なコンパイラは”ただ”で手にはいるとあり,その場で,Javaの勉強を始めることを決めました。
 つまり,お金を使わなくてもプログラミングできるという経済的な理由でJavaを始めたわけです。

 しかし,実際にJavaを扱ってみると,C言語のポインタあたりに挫折していた私にとっては,メモリ管理をユーザにあまり意識させないJavaは実にちょうどよいプログラミング言語でした。今では,結構気に入っています。
 ただ,他の言語に比べていいことばかりというわけにはいかないところもあります。
 あくまで,そんなに詳しいわけでもない私が考えることですが,Javaのよいところ,そうでもないところをかいてみると・・・

Javaのよいところ
・Javaの一番のウリは全く同じコード(プログラミングの文)でOSをまたがって実行できる。(BASICやCでは,そうはいきません)

・Javaアプレットとしてホームページ上で実行できる。

・参考書籍が数多くある。

・強力な開発環境(Javaプログラミングをするための支援ソフト)が無償で手に入る。(ボーランド社の「JBuilder」など) 同じような開発環境である「VisualBASIC」だと2〜3万円する。また,プログラミングのコアとなるコンパイラもリアルタイム,しかも無償で最新のものにバージョンアップできる。
Javaのちょっとした不満
・ホームページ上で実行できるアプレットは,セキュリティ上の理由で,ファイルの保存等ができない。

・Javaアプリケーションを実行するためには,そのパソコンにJavaランタイムソフトがインストールされていないといけない。しかも,これがけっこうサイズが大きく,VisualBASICのランタイムソフトが5メガバイト前後なのに対して,Javaランタイムソフトは約14メガバイトのサイズがある。(ブロードバンド利用者にはそうでもないが,モデム利用者にはかなり荷が重い)

・Cなどでできているソフトに比べると,起動や処理が遅い。


しかし,このことは,今後CPUの性能が更に上がり,光ファイバーなどの通信速度の向上で,かなりカバーできることでしょう。

JavaアプリケーションとJavaアプレット


 Javaのソフトは「Javaアプリケーション」と「Javaアプレット」の2つに分けられます。
 もう1つ,インターネットのサーバーなどで利用するJAVAもありますが,実際にサーバーを運用しない限り利用することはほとんどありません。
 また,「Javaスクリプト」というものもありますが,ここで紹介している「Java」とはプログラミングに使う言葉が似ているというだけで,まったく別のものです。

 JavaはBASICと同じでインタープリタ方式のプログラミング言語です。
 BASIC,C,Java,Pascalなどほとんどのプログラミング言語は英語をベースにした単語や数字を並べたもの,要するに人間が使う言葉で命令文を書きます。しかし,このままでは,コンピュータに理解できないので,この命令文をコンピュータ自身が機械語に変えた後に,意味を読みとってそれを実行します。
 C言語などでは,プログラミングをしたときにすべて機械語に変えてしまいますが,BASICやJavaでは最終的にはプログラムを実行するときに機械語に変えます。この方式を「インタープリタ」といいます。
 もう少し正確に言うと,JAVAはプログラミングをした時点で「バイトコード」と呼ばれる中間的な言語まで翻訳しておきます。そして,プログラムを実行するときに,その先を翻訳して機械語にします。
 ですから,人間の言葉でつくった命令文を機械語に変える「翻訳機」(となるソフト)は,C言語ではプログラミングする人がもっていればいいのですが,BASICやJavaではプログラムを実行する人(使う人)が持っていないといけません。この実行する人が持っていないといけない「翻訳機」が「ランタイムソフト」です。

 Javaではこのランタイムソフトは「JRE」といいます。(Macでは「MRJ」というそうです)
 Javaアプリケーションを自分のパソコンで実行するためには,まず,これをインストールしておかないといけません。

 インターネットエクスプローラやネットスケープなどのブラウザにはこのランタイムの機能が備わっているので,Javaソフトをhtmlファイルに埋め込むことにより,特別にランタイムソフトをインストールしなくてもJavaソフトを実行することができます。
これを「Javaアプレット」といいます。アプレットは独特のプログラミングスタイルを持っていないといけませんので,それを意識せずにつくったJavaアプリケーションをhtmlファイルに埋め込んでも動きません。
 アプレットの欠点は,
 アプレットがホームページ上で動作する仕組みなので,これにファイル操作の機能を持たせると,悪意をもったアプレットが,そのアプレットを動作させた個人のパソコン(つまり,あなたのパソコン)のファイルを盗み見たりもできることになってしまいますから,それを防ぐために,アプレットではファイルの操作がかなり制限されています。ということは,ほとんどのソフトに備わっている「データをいったんファイルに保存して,後でまたそのファイルを開く」といった操作ができないということになります。
 また,ブラウザに準備されたランタイムがJavaのバージョンの進歩に追いついておらず,プログラミングに新しいテクニックが使えない。
 ということがあります。
 しかし,
 約14メガバイトはあるランタイムソフトJREをダウンロードする必要がない。
 フリーウェアなどのソフトはダウンロードしなくても,その内容がホームページ上で確認できる
といったメリットがあります。


 (注)

 この文章は2002年ころに書いたものに,毎年ごく一部の書き換えを加えているものです。ですから,これを読まれている時点で,すでに内容が古くなっている箇所があると思います。。

 たとえば,2004年現在では C言語や BASIC の はやりは 「C#.NET」や「Visual BASIC.NET」で,「C#.NET」などは初期「C言語」で初心者を苦しめた「ポインタ」というメモリを直接操作する手法があまり表に出てきていません。また,「NET.Framework」というJAVAで言うと「JRE」のようなものがないと動作しなくなりました。



このサイトのどのページを1番たくさん見ていただいているかを知りたくて
ページごとにカウンターを設置することにしました。(カウント開始 2003.7.28)

このページは,数え始めてから
Counter
の方が見てくださいました。