Java is moving to complicated generics though, see project Valhalla, although not like C++ templates, but more about specialization for primitive types, which can be a huge performance win.
I guess it will complicate things a bit, you're right. I'm pretty happy I don't have to use Java anymore though :)