パスワードを忘れた? アカウント作成
519183 journal

strmの日記: Javaは桃源郷ではなかった..

日記 by strm

何故Javaにはconstキーワードがないんだろう。
オブジェクトメンバを返すアクセサでclone()するのを避けるために immutableなるテクニックがあるのはわかった。
immutableを使っていて困るのは2種以上のコンストラクタが欲しくて、
しかも運の悪いことに型が全く同じなためオーバーロードできないとき。
どちらにしろこんなことのためにクラスデザインの幅を狭められる筋合はない気がする。
bugs.sun.comを眺めているとgetアクセサのみを提供するインターフェースを作るテクニックが紹介されているけど、
どう考えてもconstキーワードのほうがスマート。
それにArrayListなどのリストを返すときはclone()を避けられない。
(これもサブクラス化すればいいとか言われそうだが..)
ここでもスマートな解決法は示されていないし、これはもう現行のJavaではどうしようもないことのか...

Javaを使えば使う程如何にC++が優れている言語なのかがわかってきた。
いやもちろんC++にも扱いにくい部分はたくさんあるのだけど。
自分はJavaに期待し過ぎていたのかもしれない。
それにしても6年前に議論されていた領域に今ごろ足を踏み入れるなんて、時代遅れにも程があるな。

とりあえずC++にある程度慣れた人間が1週間Javaを使った感想を徒然と:
・ヘッダ無いと構造読みづらい。でも書かなくていいのはやっぱり楽。
・パッケージの概念がすごくいい。C++のnamespaceより断然いい。
・const無いの!!??? (ダントツ衝撃的)
・変数について、参照と実体の違いが文法上ない(&がない)のは直感的じゃない。
・多重継承なくしてインターフェースにしたのは正解だと思う.. (今のところは。)
・unsigned byte無いのは不便すぎ。
・プリミティブ型とそれをラップするクラスがあるってダサくないですか。
・1.5の新文法 for ( Foobar foo : foobarlist ) めっちゃ素敵やん...
・演算子オーバーロードはやっぱり必要。
・C++の知識があると思った以上にJavaの習得は楽。でも調子乗ってると上記のような穴にハマってやり場のない怒りを覚えたりする(笑)。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家

読み込み中...