> I think type erasure was an error, I would have preferred no generics to > what we have. I agree though that few languages that claim to have > properly supported parameterized types do.
I'm with you on that. Erasure introduces an unnecessary duality in the type-system where you read one thing, but the compiler and runtime really sees something else! One can not write implements Comparable<T>,Comparable<U>" because underneath the layer of lipgloss it really reads "implements Comparable<Object>, Comparable<Object>" due to the fact that the compiler is really just injecting down-casts and type-checks plus some extra meta-data solely for reflection purposes. At least in C#, you get what you see, plus they can do a whole lot of performance optimization and code sharing. There's a decent comparison at Wikipedia: http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java#Generics Sometimes it's ok to draw a line in the sand and break with comparability to fix something, Java could be much much more elegant and lean today. /Casper -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
