Why Java has some of its problems
I published a post a while ago on what I thought was wrong with Java. To be honest, I never really understood why some of these problems existed. Well, in my new job, I’ve dug a little deeper into them.
In my searches, I found this article on Java generics, and why you simply can’t do anything serious with them and not get warning messaches about unchecked conversions. The short answer is, to remain binary compatible and to not break millions of lines of code, generics type information is thrown away using erasure, and is not available at runtime. They aren’t reified. It offers several solutions, too.
I also found this other article on serialized classes, and what the serialVersionUID field is for.
And finally, a good explanation of closures in Java, and how they could be added in.