Javaって冗長ですか?

Java が使いにくいのは静的だからではない - kなんとかの日記を読んで,矢野勉のはてな日記を思いだした.(もちろん,後者より前者の方がだいぶ自然と言うかまっとうな例だけど)

で,感想だけど前半部分はそんな具体的な変数の記述が必要なレイヤーの処理をJavaで書くのが間違いなんじゃないかと.というか,データ構造じゃなくてデータの内容をコードに記述するのがすごく気持ち悪いのは自分だけ?使い捨てならいいけど,使い捨てるならJavaなんて面倒くさい言語は使わない.

後半部分はC#の時にも同じ議論があったけど,ただ代入するだけの無意味なgetter,setterを作るのとpublicで変数を公開するのは(基本的には)等価だから,アクセサメソッドを作るシンタックスシュガーはJavaに関しては必要ない.setterだけ,getterだけを作るシンタックスシュガーはあってもいいのかもしれないけど.

あと,たぶん自分の場合Java脳が進行しすぎてるだけだろうけど,Javaではメタプログラミングがしづらいと言われても,JavaのInterfaceで記述できないメタプログラミングというのがいまいち想像できない.

追記

ただ代入するだけのpublicなgetterやsetterを作ることをカプセル化と言ってる反応があってふいた.きちんとカプセル化されているかさえ遮へいできるってのが真のカプセル化って事ですか?

というか,なんかの意味で「自分の理解力」の限界を超えないとカプセル化のメリットと言うか必要性を理解することは出来なくて,カッコだけカプセル化になるのかなと思った.自分の場合には,Javaで並列処理を書き始めたあたりで理解できる範囲を越えたので,カプセル化とは何かの真の意味を理解できるようになった(と思った).

個人的には,型うんぬんよりもJavaの並列処理のわけのわからないトレードオフぶりの方が糾弾の対象になる気がする(マルチスレッド時の安全を重視すると途端に速度が落ちてしまう).