Java ジャバじゃば
現在、わけあって「Java」を使っているのだが、これがなかなか面白い。 そもそも、私が初めてJavaに触れたのはちょうど1年前、ゼミの勉強会で勉強させられたときである。 あのとき触れたJavaはかなり面白くなかった。 周囲からもかなりの不満が漏れていたことを記憶している。 とはいえ、触れたことがあるというのは紛れもない事実なわけで、言語仕様がC++とたいして変わらないことも手伝って、改めて覚えなおすのに時間は掛からなかった。
話を戻して、なにが面白いのかというと、なにより、メモリリークを気にする必要がないということである。 そのために「ポインタ」という概念は存在せず、多少コーディングしにくいという反面もあるのだが、メモリ管理に悩む必要がないというのはかなりの部分で時間削減となる。
ちなみに、ポインタの代わりになるのが「参照型」と呼ばれるもので、“new”演算子によって実体を作成する。 ここまではC++のポインタとなにも変わらない。 「ポインタがないのを売りにしておきながらしっかりあるではないか!」と、ツッコミを入れたくなる。 しかし、明らかに異なるのはこのあとである。 newに対応する“delete”が存在しない。 deleteが存在しない代わりに、実体を破棄したい場合は実体を参照する参照型変数に“null”もしくは別の実体の参照を代入すればよい。 実体がどこからも参照されなくなった時点で、不要領域としてまもなく自動的に破棄される。
もうひとつ気に入った要素が「インターフェース」である。 これは、簡単に言い換えれば「すべて仮想メソッドのクラス」である。 最初はこれが一体なんの役に立つのかと疑問に思ったが、多重継承ができないJavaにとってはかなり重要な要素である。 特に、アプレット等でよく用いられる「あるメソッドを本来持つべきクラスとは別のクラスに置く」といったトリッキーなテクニックも簡単にできてしまう。 これ以上は割愛。。。