May 04, 2003

Mac OS X Development Tools and Eclipse

Michael Tsai and Buzz Andersen are talking about Eclipse and Project Builder . Ever since I started using Eclipse and developing an Eclipse-based product full-time, I've been meaning to say something about Eclipse and Apple's developer tools.

Eclipse JDT (Java Development Tooling) is an IDE par excellence. After primarily using Project Builder, the move to Eclipse was quite a shock. Eclipse was so powerful that I was stunned as I found feature after feature that made me say "wow". Even now, after using Eclipse full-time for four months, I am still finding features that amaze me. I haven't used Project Builder in a while, and now I'm worried that I will face withdrawal when I try to go back to Project Builder to do some Cocoa development. What am I addicted to? Automatic compilation constantly happening in the background, with errors displayed in your code in real time. Content assist that shows available types, methods, and variables, with associated documentation. Effortless refactoring support. Wicked CVS integration.

Project Builder and (especially) Interface Builder are fine tools, with lots of Apple and NeXT style. However, Apple does not have the resources of Microsoft or IBM. Apple will never be able to deliver a world class IDE (e.g. Visual Studio .NET and Eclipse) as long as they continue trying to write the whole thing themselves. That leaves Apple with a couple of options. One is to continue down the path they are on, turning out charming and sometimes innovative development tools that lack the feature set of major IDEs. Those who "get it" (see the beauty of Cocoa and Objective-C) will like, or at least put up with, these development tools. However, professional developers who may have heard the buzz about Mac OS X will investigate the platform, take a look at Apple's development tools, and recoil in horror at the feature set of Project Builder. They will leave the platform, having never had a chance to see the beauty of Cocoa. The second option for Apple is to find a way to build a world class IDE on par with Eclipse JDT, even with their limited resources. How can this be done? Well, as Steve Jobs has pointed out, "good artists copy, great artists steal." Apple could use (steal) code written by others for the foundations of an IDE, leaving them free to concentrate on creating features that developers crave. Eclipse is a tool platform - Eclipse JDT is just an example of an application for the Eclipse platform. What if Apple created a new Project Builder based on Eclipse?

Although this sounds promising, there are major issues with such a proposal. First of all, an Eclipse-based Project Builder would not feel Mac-like. Perhaps if Apple jumped in and did a really amazing port of SWT it would feel more Mac-like, but there would still be look and feel issues. Another problem is that Apple might be viewed as not eating their own dog food. Eclipse is written in Java and the Mac port of SWT would probably use Carbon. Pundits might say, "Look, if Cocoa is so great then why isn't Apple using it to build their development environment?" So, although the idea of Eclipse MDT (Mac Development Tooling) sounds tantalizing to those of us who have drunk the Eclipse Kool Aid, it doesn't seem to be in the cards.

The crux of the problem here is that Apple doesn't have the resources to implement the plethora of features available in IDEs like Eclipse. They need help. But maybe my pipedream of Eclipse MDT was the wrong way around. Perhaps, instead of Apple piggybacking off of Eclipse, Apple should rely on people piggybacking off of them. Instead of scrambling to catch up with the features of more advanced IDEs, perhaps Apple needs to rearchitect the very core of Project Builder with an amazing plugin scheme (quite possible given the elegant dynamism of Objective-C). Then Apple can sit back and watch as their fanatical developers, those who understand the beauty of Cocoa, pump out plugin after plugin providing whizbang features like code completion and refactoring. Given the creativity of Mac developers, we could see the next great IDE feature developed for Project Builder, and then watch as Microsoft scrambles to introduce it in Visual Studio .NET.

Although I hate to see duplication of effort, it seems that we need something similar to the Eclipse platform's scheme of massive plugability, but implemented in Cocoa. People have clamored for Project Builder plugins for some time, but I believe Apple needs to go beyond a simple plugin scheme, and create a Project Builder extensible to its very core. Apple - if you build it, they will come, and they will create a world class IDE for you.

What does the future hold for Apple's developer tools? Could WWDC 2003 bring big changes? I don't know. I want to believe.

Posted by Dirtae at May 4, 2003 09:15 PM
Comments

After reviewing NetBeans, Eclipse, and lately even the evaluation copy of IntelliJ IDEA, I'm finding bugs, missing features (in the Mac version of Eclipse), and, worst of all, performance issues. It would be great to have a native-code Java/C/Obj-C IDE that offers the amazing powers of Eclipse.

Eclipse is so good on Win2k that some small, traitorous part of me doesn't really mind having to use Windows at work.

Posted by: Erik at May 5, 2003 10:09 PM

Completely on par with the previous comment. I currently develop J2EE apps. I have to say that my main dev box is WinXP because Eclipse is so smooth on it. My Titanium usually only runs the database.
However I do plan, one day, to run everything on Apple branded computers.

Posted by: eric at November 25, 2003 05:40 AM

Hi,

I recently switch to mac os X and began to develop Cocoa java application... Cocoa is a nice api, interface builder is an awesome tool, but XCode really sucks comparing to eclipse.

Does anybody around here try to author some ant scripts that one could use to build a cocoa application in eclipse, keeping interface builder to create nib files (and skeleton classes) ?

Maybe the ant integration feature in XCode 1.5 will help...

Sebastien

Posted by: Sebastien Brunot at October 7, 2004 03:48 PM
Post a comment









Remember personal info?