Why languages don't get better
I stumbled across an interesting point of view on why things like generics haven't caught on in Java:
I think that this view is a bit optimistic, it's been noted before that language features don't really catch on unless they're integrated into the language, e.g. Garbage Collection in C++. It's certainly possible to build a garbage collected system in C++, and there are commercial implementations (I think one prominent vendor is named Great Circle), but hardly anybody uses GC in C++. So the fact that hardly anybody's using third party extensions to Java isn't an indication that people don't want them; they either don't know they want them, or they don't want to use a third party extension. Especially given that Sun put so much effort into promoting "100% pure Java", it's not surprising that nobody's shown much interest in creating a "better Java". Sun's created a situation where their imprimatur is crucial for language features to be accepted by the wider audience of Java programmers. So development focuses on the platform, where extension is encouraged, rather than the syntax, where extension is discouraged.
The whole thing is here. I think this catches an interesting difference between the Smalltalk developer community and the developer communities for other systems - especially Java and MS based ones. It's not that developers don't ask Cincom (or IBM, or Object-Arts, etc.) for additional features; they do. It's that they don't sit around and wait for them. The entire Smalltalk culture is built around a more self reliant, do it yourself kind of credo, whereas the mainstreamers tend to sit back and wait for the promised delivery from the vendor. Maybe that's because Smalltalk is simpler, maybe that's because Smalltalk has always left itself more open to extension - no final classes or primitive data types here, for instance.
Whatever it is, I think it makes for an overall smarter community of developers.

