InfoQ: クロージャとJavaらしさの維持
http://www.infoq.com/jp/news/2007/12/closures-preserving-feel-of-java
クロージャについても興味深いですが、Genericsの導入は失敗だったという主張の方がもっと気になります。シンプルな文法だというのが大きなメリットであったJavaですが、Genericsの導入によって、複雑で覚えにくい言語になったといえば、それは確かにそうです。クラス、オブジェクトだけを使ったプログラムで説明ができるのですが、実用的なプログラムを作成しようとすると、プリミティブ型を使いたくなってしまう場面がでてきます。速度を考えなければ、ある程度はかまわないのですが、明示的にプリミティブ型をつかっておいた方が良い場合がやはりあります。もちろん、コンパイラがどの程度最適化をしてくれるのかにもよりますが、確認するためにはコンパイラが生成するJavaVMのコードがわからないといけません。それはもうワンランク上の話になります。
ただ、Javaプログラムを作成するにあたって、定型的なキャスト操作をしなくて済むという意味ではGenericsは役に立つし生産性を高めていると思うので、失敗といっていいのかは疑問です。Javaの不思議はひとつ増えてしまっていますが、利点の方が大きいように個人的には思っています。どれだけ弊害があるのかをきちんと検討していないからかもしれませんが、Genericsが導入されたおかげで、型について安全性を保てるようになったのは、やはり便利だと感覚的に感じているからです。