EDIT: I happily accept that my view on this topic is, perhaps, reactionary, and that other people have quite different views on Generics. The only concerns I have are that many people don’t yet appreciate what a blow to the head G is, and that I can’t seem to find a way to use java 5 without exposing myself to G madness as soon as someone else decides to give in and use Gs in their supporting code for anything I work on.
…and that it’s a very very bad sign for the future of Java. If Sun takes their responsibilities this lightly…
If, for instance, Sun does a volte-face and actually removes or replaces G completely in the near future with something that is NOT runtime compatible (might be compile-time compatible) and actually provides generic types in java (which G definitely does not do), then I’ll be first in line to congratulate and cry “catastrophe averted”. Microsoft does exactly this kind of thing: recognizes the really big mistakes, and no matter the cost, attempts to turn everything around - sometimes even the entire company - just to fix them. Obviously they don’t do it all the time, or people wouldn’t complain about windows so much :), but at the moment I’m wondering whetehr Sun even has that mindset. They didn’t used to, but in recent yeasr appear to have started dabbling in this approach (once again, c.f. Solaris x86. That’s a pretty mega U-turn)
I appreciate your point, but still disagree. It is about responsibility and “group think”. NO-ONE gets to absolve themself of responsbility for their own mistakes “because everyone else in the group went for it”. This is the classic excuse used in the public sector to justify the horrendous stupidity and/or cowardice on catastrophe projects; if someone took responsbility, they would have kicked up a huge fuss, saying “this is ridiculous; we cannot possibly take this **** to market”.
Fair enough. There’s a lot of people listed that - from personal experience of their organizations - I wouldn’t trust in a million years to make decisions about the future of a programming language.
EDIT: next sentence doesn’t read as intended. What I meant was that to date the AF has nothing to be proud of. Many of their projects (maybe most - I haven’t tried them all) are going in very good directions for the future. Perhaps, one day, they will finish something, in which case it will be good. They have an awful lot of projects that “could be excellent if anyone ever finishes them”, but somewhat make fools of themselves by “constantly re-inventing from scratch” and avoiding re-using existing stuff that would save them time when they have this history of not completing.
Why the hell is anyone, for instance, saying that a vote from the Apache Foundation (makes free software historically of extremely poor quality historically re-inventing the wheel over and over again, often badly, and famous for ownership of the world’s slowest web-server) should even be listened to when deciding the future direction of something like java? I use a lot of AF projects, and none of them are complete, none of them work properly (even the simplest of those I use have had hiatuses of more than a year where no-one released anything even though they knew the things didn’t work).
Shrug. Just looks to me excatly like another pattern thats common in the IT industry: at some point, the large corporate who owns a tech gives up control to the whims of customers / vendors, and the product sinks into depravity. Look at all the designed-by-committee howlers of the 1990’s.
I’ve still not found anyone who has a cogent argument that they are anything more than a fix for a problem with Collections that made them look stupid to advanced programmers with wide experience of mainstream languages.
This was Eckel’s conclusion, eventually: that most of his frustration came from erroneously thinking it was meant to be any more than that. (although, given how fluid his opinions seem to be, he’s probably changed his mind again by now :))
If you look at what works and what doesn’t, and weigh the pros and cons and costs, I honestly can’t see how you’re going to gain benefit from then other than “seeming visually to fix Collections” and/or “reduce the number of typecasts you type in your source code”.
Please fill me in.