Ulrich has some good points. Could you be identify some of the key areas where Swing differs from Cocoa? I'm not trying to come off as cynical -- I'm relatively ignorant of both frameworks and I'd geniunely like to know.

Every programmer I know has a story of a superior idea losing out to an inferior idea. You see it all over the place. CP/M losing to DOS, OS/2 losing to Windows, Objective C losing to C++, Smalltalk losing to Java, you name it.

However, the thrust of all of these stories always boils down to "life is so unfair" or "things were better back then". I think this is a bitter oversimplification. The truth is that ideas don't thrive on their brilliance alone. And it's a cop out to say that an idea is "before it's time" or that people "just don't get it".

Even good ideas need to be sold. It's ironic that programmers think that marketing is worthless. Most of these sob-stories are testaments to the value of marketing.