I ran across this article in SD Times yesterday - it outlines the different approaches taken by MS with .NET, and Sun with Java. Sadly, they both follow the "more complexity is better" development paradigm. Here's an example of what I mean:
Among the most talked-about new language features is generics, which Holub said lets developers write code before knowing the program’s variable types. “It’s [otherwise] very difficult to do some kinds of generic programming in the sense of a data structure. Because if you don’t know the types, that makes the code nasty, more error-prone and harder to deal with. Generics allow you to give the compiler what it needs to effectively customize the way a class is used for a particular typing system.”
Talking about data structures, O’Brien explained, is like talking about lists. “For instance, a list of cats versus a list of dogs. With generics, you’re able to make sure that a list of cats, once you’ve created it, will prevent you from putting a dog in.” And that simplifies programming, added Holub, “because when you pull something out of [the list], you know as a fact that it’s a cat, and you don’t have to worry about putting in any manual tests you would otherwise need.”
There's the widely voiced fear of the declarative typing crowd - you might accidentally put the wrong thing in a collection, and then boom - all heck will break loose. Now seriously - how often does that happen? Let's see - I've been writing Smalltalk code for over a decade now, and in the last three years I've released three applications - BottomFeeder, Silt, and Bottom Line. You want to know how many times I've ever seen the "wrong thing in a collection" problem in my code?
That's right folks, never. But just look at the exquisite complexity added to C# and Java to make sure that this can't possibly happen to you! It's like putting seat belts on a bus. I've been doing what Holub refers to as generic programming for a long time now, and trust me - it's not "nasty" if you use Smalltalk. It's "nasty" if the tools you use insist on handing you a straightjacket, and then explain how it's all better because you can't hurt yourself that way.
Sure, it just takes a whole lot longer to get anything done.