Macs, Modularity and More

Eclipse versus NetBeans -- Mac OS X runs both

Charles Ditzel (e-mail, blog), infamous Sun employee and vociferous critic of Eclipse on Mac OS X wrote recently that "The result is that many Eclipse developers have switched to NetBeans and others are beginning the migration to NetBeans by using both IDEs.".

Firstly, it's clear to see that Charles' viewpoint is heavily biased towards NetBeans. The guy works for Sun Microsystems, he blogs about NetBeans as if it's the best project in the world, and clearly isn't interested in an impartial view. So take what he says with a pinch of salt at best.

But the main reason for eschewing Charles' review of Eclipse vs NetBeans is his comments on Eclipse on Mac OS X broken. I'm sorry Charles', but that just isn't true. I've been using Eclipse on Mac OS X since it came out, and I was spending my spare time as a tester for the Eclipse Mac OS X release before it became 2.1. I raised 280 bugs towards improving the quality of the application as a whole, and whilst I agree it's not quite there (it's not quite as 'polished' as a normal Eclipse App), it's still perfectly usable. In fact, you seem to have surfed the bug reports for anything involving 'SWT' and 'Mac OS X' and then linked them in your blog, rather than having an understanding about them; I don't see your name cropping up in any bug reports or comments.

His main gripe is that Eclipse is bad because you can't create/run Swing apps in Eclipse on Mac OS X. This has actually been traced to a bug in the AWT implementation of the JVM, and the radar bug filed with Apple. (Radar is the name of Apple's bug-tracking system, in case you're interested.) It's also related to the fact that Suns JVM implementation (which Apple licenses) isn't sufficiently flexible to allow other GUI threads to interact with Swing, so if there's a bad boy in the crowd, it's still Swing, not Eclipse. Saying that X doesn't work with Y when Y just plain refuses to work with anything else is not a great way to win an argument.

There's also a mistake in his blog about the fact that 'I can run the same code on any platform'. Well, actually Charles, that isn't quite true. The Mac OS X download takes the form of a Mac OS X application; the Windows has a windows launcher. Granted, 99% of the code behind-the-covers is portable, but the bit at the front (the launcher) is different in both places. Guess what? That's exactly the same principle behind Eclipse. It too has the same set of plugins for the code base, of which 99% is common; the 1% in Eclipse's case includes both the OS-specific launcher and also the SWT DLLs. In fact, the plugin architecture allows for multiple window providers and operating systems in the same install; so I have a shared Plugins directory which I actually share for both Windows and Mac environments. The only difference is that where a vanilla install of Eclipse for Windows will have a plugin for the Windows SWT, and the Mac has one for the Aqua SWT, I actually have both in the plugin directory.

(On a side node, if we want to complain about installers; how about configuring your download process to get rid of the .gz extension? All browsers know about GZip decompression on the fly, with the result that when the file gets down, it's saved as NetBeans_4-1.dmg.gz, but it's been decompressed by my browser; so the OS refuses to open it. The Eclipse install takes the right 'Mac OS X' approach, and provides it as a DMG, which can be dragged and dropped into the right place.)

A less blinkered viewpoint about where Eclipse and NetBeans are heading in the community is fairly obvious; all you have to do is look to which companies are aligned with which environment: