Indeed, if all you want Java to be is a statically typed language, then you may be better off with C++.I think it is also important to realize that reflection provides a different kind of genericity, and I think it may at least partially compensate for the limitations of erasure-based generics.