ホームページ目次1996年前の話次の話

JAVAのどこが安全なんぢゃい!

1996年3月30日

今日は、今年度最後の重要な行事が明日あるので、そのための資金繰りの計 算に来たのに、つい、また JAVA をやってしまった。まあ、スライドパズルのバリエーションが『箱入り娘』 だけではつまらないだろう、あるいは『箱入り娘』は難しすぎるので、もうちょ いとやさしいパズルを提供しようと思って、『ダット・パズル』というのを用 意し、加えようとしたら、何と、滅茶苦茶に なってしまった。今日は、それの愚痴を書いて、平成7年度最後の書き納めに しようと思う。

JAVAを始めて、まだ40日、そのうち旅行などで外出していたりした時 期もあるので、実質1ヶ月しか触ってないのに、愚痴を書くのはふとどきとは 思っているが、でも、やはり書かねばならぬようなことがあったのである。

ちょっと、プログラミング的な話に今回はなってしまうかもしれんが、我慢 してくだされ。

もちろん、私が組んだのであるから、ちゃんと動作した。そう、スライドパ ズルのプログラムである。このプログラムは、アプレットにデータファイルの 名前をパラメータとして渡すように作ってある。だから、データファイルだけ 変更すれば、別の問題にも、いとも簡単に対応できるのである。こういうふう にプログラムちゅうもんは作らなければいかん。

ということで、『箱入り娘』と『ダッド・パズル』の2つの問題をお目にか けようとして、新たに スライドパズル のページを新設し、2つのパズルを選択できるようにした。

で、「動くに決まっている」と思って、Netscapeで実行してみた。私のパソ コンはLinuxを動かしているのであるが、どうも動きがおかしい。『箱入り娘』 をやってから、『ダッド・パズル』に移る。そいでもって、『箱入り娘』に戻っ て来ると、駒の動きがマウスについて来ない。これは、ちょっとおかしいとい うことで、別のパソコンでやってみた。

Macでやってみたのだが、やはり変である。では、もういっちょう別の、 Windows95のNetscapeで試してみようとしたら、 ギャーと叫んでしまうことになって しまったのである。

どうなったかというと、もはや画面には、Windows95 の表示すらなく、キャ ラクター画面になって、変なキャラクターが並んで、 しているだ けで、キーボードも一切反応しなくなっちまったんだよー。

もう、こうなったら、リセット以外、何も方法がないではないか。というこ とで、神様に祈りながらリセットをした。その後も、一応、何とか起動した。

で、ここで、何も考えずに、もう一度試したら、それは馬鹿である。

という訳で、私の無い知恵を絞って、原因と思われるものを数分間の苦悩の 末、やっと考えついた。それは、次のようなもんである。

static というのを知っているだろうか。まあ、これはうまく使うと、便利 なことはCやC++を使ったことのある人なら分かるであろう。そして、JA VAのstaticも同様の機能を実現してくれるのである。それで、インスタンス 変数ではなく、クラス変数を作りたかったので、まあ適当にstaticを散りばめ たプログラムを組んだのである。

ところで、別のアプレットであっても、同じクラスを使っちゃっていると、 結局同じクラスは1つしか実在しない訳であって、staticなクラス変数は、 2つのアプレットで共有してしまったのであろう。

という数分の熟慮の後に、static を一切使用しなくてもよいプログラムに 1時間もの悪戦苦闘の末(途中で買物にも出かけていたっけ)、ついに書き換 えに成功し、一発でちゃんと動作するようになり、スライドパズルの多数のバ リエーションを今後提供できる準備が出来たのである。(パチ、パチ←これ、拍手)

それにしても、なんで、こんなことで、 完全無欠の暴走をやってくれるんだよー。

まあ、そんなつまらん苦労をさせられてしまった。その後、どうもまだ、動 きが、ちいと変ではないかと気になって、JAVAがどんくらいメモリを使用 しているかを見てみたのだ。

すると、どうだ。Linuxの場合だと、1.8使っていたのだ。単位はメガではな いぞ。ギガなんだ。これは、もう、仮想空間のアドレス の限界ではないか。うへぇ〜〜〜〜てなもんである。ならば、アプレットビュー アを複数個起動すると、あっという間に、5ギガ、10ギガになってしまうでは ないか。では、「やってみよう」とそそのかすのが周りにいて、ついその言葉 につられて、またまた危険な実験を試みてしまった。

その結果は、どんなことになったかというと、ほんとうにどうなることかと 心配であったとうりに、ギャーッと叫ぶ必要があるかと思って、一応編集中の ファイル等はセーブし、危険にそなえたのである。そのかいあって、事件にも 耐えたといいたい。が、実は、何も起きなかった。Linuxは偉いのである。ちゃ んとしたメモリ管理をしている、ちゃんとしたOSであらせられるので、何も起 きなかった。

でもなあ、アプレットが、それも Hello World を表示するだけの阿呆みた いなのでも 1.8ギガもメモリを要求するなんて、いったいどういうインプリメ ントをしてんだろう。今日は、気になって、気になって、眠れそうにない。


ホームページ目次1996年前の話次の話