Javaパニック

Javaアプレット問題で混乱中です(笑)



<VB使いのVB嫌い>

アルゴリズム(プログラムの流れみたいなもの)を考えるのが結構好きです。
慣れ親しんだBasicをベースにしたVB(VisualBasic)というソフトウエア開発環境で、個人的に大小さまざまなツールの類や、パズルのソフトなどを作って楽しんだりしていたのですが、やっぱり自分だけでなくて他の方にも使ってみて欲しいという気持ちはだんだん強くなるんです。
でも、VBでは、ランタイムライブラリというかなりのボリュームがあるものをインストールしておいていただかないと実行ができないという制約があります。以前友人にアイコンを作る小さなソフトを差し上げたことがあったのですが、ランタイムライブラリ込みでコピーするとFD一枚に収まらない…これショッキングな出来事でした。それで、VBで作った自分のソフトを公開するのに積極的になれないでいるのです。
きちんと機械語にまで落としてくれるVBコンパイラーを作ってもらえたら、VB使いはみんな大喜びだと思うんですけど(笑)。


<C++はランタイムライブラリ不要>

C++はコンパイラーで作った実行ファイル(.exe)は、OSは選ぶものの単独で動作するのでインストールという作業がどうやら不要らしい、しかも動作も早いらしいということを知って、ネットで公開して他の方に使ってみていただくのに都合が良いと思いました。
ただ、OSを選ぶのと、意識的にダウンロードしていただく点に、少しだけハードルがあるかもしれません。PCに苦手意識を持っていらっしゃる方には、ダウンロード&解凍はちょっと面倒なんじゃないかしらん…。
それと、Windows上で動くコンパイラでMacintosh用の実行ファイルができるものが有ったら、逆に、Mac上で動くコンパイラでWin用の実行ファイルができるものが有ったら、便利なのに(笑)。


<Java仮想マシンは多くのPCに既に乗っている!>

それなら、Javaはどうでしょう?Javaは単独では実行できないのですが、Javaアプレットで有れば、InternetExplorerやNetscape Cominucater 等のブラウザが仮想マシンを既に内包しています。ですから、単独では動作しないけれどもわざわざランタイムライブラリをインストールしていただくという作業が不要です。しかも、OSには依存しないし、C++で作った実行ファイルよりもダウンロードして実行できる状態にするのが容易です。
しかもJavaScriptよりも機能は充実しているようですし。
これはちょっと感動的なことではないでしょうか?
難点は、ロードするのに時間がかかるということくらいかな、と思っていたのでした。


<ちょっとどんでん返し?>

 では、このJavaパニックというタイトルは何なんでしょう(笑)?
簡単に言ってしまうと、…Javaアプリケーションでは可能なファイル入出力がJavaアプレットでは不可能…という事がはっきりと明記されている文章を見つけて私は軽いショックを受けていると言うことなのでございます。知っている人にとっては当たり前のこと過ぎてかえって参考書などには改めて書かれてはいないんですねぇ。
良く考えればJavaアプレットにローカル側(ホームページを見ている方)のハードディスク内のファイルを簡単にアクセスできるようで有れば、ウイルスなんかも蒔き放題で危険ですよね。
 ただ、ファイル入出力があるソフトが作れるかどうかというのは、プログラマにとってはとても大きいことです。ワープロやお絵かきソフトなどはもちろん、ゲームソフトにだってハイスコアー保存や実行途中で一旦セーブしておいて、時間を置いてから又ロードして続きをやるなんて機能が有りがちなのです。そういう機能が一切付けられないというのは寂しい限りです。


<結論…今後どうしたらいいのか?>

1) 著名付きアプレットというものがあるそうです。ブラウザで閲覧する方にYesをクリックしてもらって、少しセキュリティの制約を緩めてもらうわけですね。これを少し研究してみようと思います。
2) 他OSでは閲覧不能になりますが、ファイル入出力がらみのソフトはC++で作成する。

という二つの方向で考えてみようと思っています。
いずれにしろ、私には高〜いハードルでございます。VBやFortranとは文法が全然違うんですもの…。

2002.11.29

[HOME][とまて週報TOP]