Lately, there's been a lot of guff spouted about how Sun isn't joining Eclipse. While I understand the bitterness aimed at Sun somewhat, I think that this particular brand of talk is counterproductive and, dare I say it, wrong. The talk tends to center around the concept of NetBeans and Eclipse using common technology, and I think this is misguided, and here's why.
I really dislike Netbeans. I think it blows goats from here to Sussex, and considering that I live in the middle of the US, that's a lot of goats. Given the choice between NetBeans and... Notepad, I usually spend a minute pondering whether I can keep remembering to check extensions on filenames before realizing that I can, and I end up with sucky ol' Notepad instead of bothering with NetBeans.
That said... I use Eclipse fairly often. I have a client who's standardized on WSAD, and I really think Eclipse' project management is a model to be copied. The CVS integration, last time I used it, wasn't bad at all (if a touch kludgey), and...
And I'd rather use NetBeans than Eclipse, given a single project to work with. In fact, the only OS I'll use Eclipse on is Windows. Everywhere else... not a chance. Eclipse represents the worst of Java: an IDE, a popular one, that isn't actually as much Java as I'd like.
Look: NetBeans sucks. I said that already, right? But I can run it on all of my OSes and have a reasonable expectation of what it looks like and how it works. It's NETBEANS. Not NetBeans/XP, not NetBeans/Linux, not NetBeans/Solaris. It's just NetBeans. IDEA (my editor of choice) is the same way: I install it, and the user experience is the same regardless of OS. That's where Swing rocks. It (IDEA and/or NetBeans) is one program, that I don't have to re-learn to use everywhere I use it.
Eclipse... oh man, the first time I opened it up on another OS... ... I don't think I can describe my gut reaction in a public forum. It's amazingly ugly. It's awesome on some OSes... and when I pointed out how ugly it was on MY platform, here's a smattering of the responses I got:
Um... right. I should choose my OS based on a specific program I want to run, regardless of whether that program fits the machine's overall goal.
It's free, so I should just suffer in silence.
Worse: I should port SWT to my chosen operating system and UI toolkit. While I realise that's the best gift economy move I could make, I'm a busy man. I have too much on my plate as it is, and too many good alternatives to take up porting SWT.
This is what annoys me about Eclipse: the free moniker is misleading, the toolkit is ideal for a limited set of platforms, and the Eclipse people - sorry, guys - carry around this annoying flag of "We're the underdog, HEAR US ROAR."
Bleagh.
One of the urban myths on JavaLobby is that the name Eclipse itself was designed to be a joke about blocking out the Sun and designed to antagonize the creators of Java. This isn't true, and what occurred was when the first prototypes were shown to a group of IBM executives they were so impressed by its functionality the comment was made "This is amazing - it eclipses everything we've ever done before".
The reference in other words was to previous IBM tooling efforts, so if anything the name is a snub on IBM previous track recording in tooling. Eclipse is a true open-source project that was seeded by IBM and its business partners to be the foundation for their tools stack, but since has grown into a much larger and more independent movement. The list of current participants is a who's who of the IT business including Intel, Red Hat, Oracle, Borland and many others.
Despite its comparisons to NetBeans, Eclipse itself was not intended to be an IDE per se, and was designed to be useful for "anything and nothing in particular". It's flattering that it gets frequently included towards the top of "Best IDE" polls, but out of the box it is missing lots of features required for Java development - such as those for J2EE artifacts. However, the community that has grown up around Eclipse has recognized this and there is signifigant momentum behind efforts to shape it more towards these product stacks. A lot of Eclipse's strength comes not from IBM but from other participants and grassroots developers who contribute feedback, build plugins, and use the tool in new and exciting ways.
Eclipse also gets employed by people doing more specialist vertical industry development such as SAP, and one of the most exciting projects going on right now is the rich client development platform that will allow more people to take advantage of the workbench and its plugin architecture for their own end-user applications.
It's great that Joe Ottinger both likes and dislikes Eclipse and NetBeans. I won't enter into a debate about NetBeans for the "counterproductive" reasons listed in Joe's opening paragraph. Good technology stands up on its own strengths without needing to knock the competition down, and I have no doubt that there are many excellent features of NetBeans that its users find productive and powerful.
Joe does make an interesting point about operating systems portability, when he recalls the story of opening Eclipse on another OS (presumably other than Windows) and describing it as amazingly ugly. Without knowing more about the particular OS and problem I can't comment on why this occurred.
The feedback he received about why he was using that OS or why didn't he port SWT were probably from a general public forum. The views of individuals on newsgroups, whether they're pugnacious or not, don't often represent the people they believe they are backing, any more than football hooligans don't speak for their team's players. It's not a goal of Eclipse that you should choose your OS based on a specific program, and if the particular platform Joe used was one supported by Eclipse then he should raise issues in Eclipse's bug tracking system and engage the developers rather than the newsgroup pundits.
At the end of the day, "you download your tool and you takes your choice." Having Eclipse, NetBeans, as well as the other great IDE tools out there (JBuilder, Weblogic Workbench, WebSphere Studio) is good for the Java community. It creates healthy competition as they all leapfrog each other's functionality with successive releases - and the real winners are users of Java who focus on their end user's problems rather than engage cycles arguing whether their IDE is superior based on its GUI toolkit or otherwise.