Four Mac-based IDEs compared: Which should you choose?

We weigh the pros (great UI, ease of use) and cons (no JDK 1.1) of the Mac as a Java development platform

When Java first appeared on the scene (way back in 1995), Macintosh support for the new language was non-existent, and Sun's plans for porting Java to the Mac were vague and non-committal. By 1996, with the release of the first generation of Mac-hosted Java integrated development environments (IDEs), things had improved somewhat -- at least there was something that would run on a Mac -- but the situation was far from ideal. (In August 1996, JavaWorldpublished my article, "March of the Mac IDEs," a comparative review of some of those IDEs.) The first crop of tools were, at best, beta quality, and many who would rather have worked on their trusty Macs found themselves switching to PCs, and even Unix boxes, for their Java development. Moving to the PC wasn't that bad; after all, there are a wide variety of IDEs for the PC. Unix developers aren't quite that fortunate, but at least most Unix platforms support version 1.1 of the Java platform, something Mac Java developers are still waiting (sometimes quite impatiently) for.

Mac developers no longer have to be content with the beta-quality IDEs of the past; however, these same developers are, just the same, experiencing an uneasy feeling of déjà vuas the rest of the development world is starting to cut its teeth on JDK 1.1.3. With the viability of the Mac OS as a Java development platform in question, some of us are still doggedly determined to prove that Java can fulfill its promise as a cross-platform language, allowing us to work where we feel most comfortable, where we are most efficient, and most of all, where we are happiest -- the Mac OS.

In an effort to determine just how viable a platform the Mac is for Java development, I conducted a comparative review of Mac-hosted Java IDEs. I focused on tools currently that are available in final-release versions for the Mac platform, avoiding those that are either still in alpha (such as Marimba's Bongo GUI development environment), or beta (such as Visix Vibe), and those that require Java 1.1 in order to work (such as JavaSoft's Java Workshop). Also, although I did not review Apple's Macintosh Runtime for Java (MRJ) as a development tool -- it's not an IDE -- I did include it in performance tests, because most of the tools are moving toward replacing their built-in VMs with MRJs. See the sidebar Apple Mac OS Runtime for Java (MRJ) for more information on MRJ.

If you just can't wait to see how the tools fared, take a look at the following table, which provides a quick rundown of each tool's features. Each of the tools, along with the company contact information, is listed in the Resources section of this article.

Tools at a glance
Roaster Cafe Visual Cafe

CodeWarrior Pro/

Discover Programming for Macintosh

Price 99.9599.95CodeWarrior Pro: 99
Discover Programming for Macintosh: 9
Pros Superior user interface; fastest JIT; reasonable VM performance; great debugger; supports duplicate filenamesFastest compilerMost advanced GUI development support; moving toward support for Java BeansExcellent user interface; most stable VM; very fast JIT; best support for native methods; support for Object Pascal, C, C++; CodeWarrior Pro includes tools for Windows 95/NT; Discover Programming for Macintosh is very inexpensive
Cons JIT is still beta; VM not as solid as CodeWarrior; no JDK 1.1 support until MRJ 2.0Poor support for application development; no JDK 1.1 support; outdated documentationMajor stability problems, inadequate documentationUser interface cluttered by C, C++, Pascal features, CodeWarrior Pro is not cheap; can't develop commercial software with Discover Programming
Create Double- Clickable Apps from IDE YesNoNoYes (requires CodeWarrior VM)
Free Trial Version Available YesNoYesNo
Native Method Support NoNoNoYes
JDK 1.1 Support Dependent on MRJ 2.0 (not yet released)NoneDependent on MRJ 2.0 (not yet released)Pre-release Metrowerks VM available
Includes JIT Yes (beta quality)YesYesYes
68K Support YesYes (no JIT for 68K)NoYes (no JIT for 68K)
Extras Comes with ObjectStore PSE, ObjectSpace JGL, OpenLink database connectivity software, Netscape's IFCComes with Introduction to Java in PDF formatIncludes libraries of useful GUI widgetsBoth CodeWarrior Pro and Discover Programming include Learn Java on the Macintosh (and several other books on C, C++, etc.) in PDF format, ObjectStore PSE, ObjectSpace JGL, Netscape's IFC
Bottom Line If you develop on the Mac because having a good user interface is important to you, Roaster is an excellent choice for Java development.If Symantec wants to keep discerning Mac developers interested in its tools, it needs to think about upgrading Cafe, or discontinuing it in favor of Visual Cafe.Visual Cafe is an ambitious product that has not yet realized its potential.CodeWarrior Pro is the premiere power tool for Mac-hosted development in any language. For those just starting out, there is no better deal than Discover Programming for Macintosh.

The tools -- an overview

This section provides an overview of all the tools I reviewed. As I mentioned earlier, I chose only those tools that are in final release. Here's a list of those tools that made the cut:

  • CodeWarrior Professional/Discover Programming for Macintosh from Metrowerks
  • Roaster 3.0 from Roaster Technologies
  • Cafe 1.5 and Visual Cafe 1.0.1 from Symantec

Metrowerks CodeWarrior Professional/Discover Programming for Macintosh

Click image for expanded view (77K)

In the foreground is CodeWarrior

Pro's clas browser, with the toolbar

above it. Behind that, the class

hierarchy viewer is visible, and

in the background, CodeWarrior's

project manager.

With CodeWarrior Pro Release 1 (sometimes referred to as CodeWarrior 12), Metrowerks has merged its Mac-hosted and PC-hosted development environments into one package, replacing the separate versions of CodeWarrior previously available for Mac and Windows. Included on the three CodeWarrior Pro CDs are compilers for several languages in addition to Java, including Object Pascal, C, and C++, all of which are hosted within a new version (2.0) of the CodeWarrior IDE. The project formats are not yet the same across platforms, so Mac users and PC users can't currently share CodeWarrior project files.

With its multi-language, multi-platform support, CodeWarrior Pro (priced at 99) may be overkill for someone who is just getting started or who has no need for Pascal, C, and C++ compilers.

Metrowerks, however, doesn't dismiss beginners. To support those new to Java development on the Mac, the company offers Discover Programming for Macintosh. At only 9, this package includes just the Mac-hosted tools from CodeWarrior Pro (including support for Java, C, C++, and Object Pascal) -- a remarkable deal. The license does not allow you to develop commercial software, though, so if you're a professional developer, Discover Programming is not an option. If you're a student or an educator who would like the full power of CodeWarrior Pro, you may qualify for academic pricing. (Contact Metrowerks for more details.)

As with all of the IDEs reviewed in this article, CodeWarrior supports Java 1.0.2 and includes both a JVM and a Just-In-Time (JIT) compiler (PowerPC only). In addition, Metrowerks gives you a sneak preview of its tools for JDK 1.1. Check out the Thrill Seekers folder on the installation CDs for these pre-release versions of CodeWarrior tools with 1.1 support.

Shortly before this article was published, Microsoft made available a pre-release version of Internet Explorer 4.0 for Macintosh, including a new JVM and JIT supplied by -- you guessed it -- Metrowerks. The Metrowerks VM included with this version of IE 4.0 includes full support for all aspects of Java 1.1 except RMI (Remote Method Invocation) and JNI (Java Native Interface). Metrowerks has promised a soon-to-be-released update for CodeWarrior Pro with full support for Java 1.1, including JNI and RMI.

Roaster Technologies Roaster 3.0

Click image for expanded view (45K)

In the foreground is Roaster's class

browser, with the class tree viewer

visible behind it. In the upper-left

corner is Roaster's package-oriented

project manager. Notice the menus next

to each file, which allow the user to

navigate directly to any method defined

in that file. Notice also the Scripts

menu in the menu bar. Users can easily

write their own scripts and have them

show up here simply by adding them to

Roaster's Scripts folder.

Release 3.0 is the first final release of Roaster, following a string of Developer Releases. New in version 3.0 is an optionally enabled JIT (still considered beta quality) for both PowerPC and 68K Macs, many bug-fixes, a stable debugger, the ability to build libraries in zip format, and a generally improved IDE. There are also a few bundled third-party libraries supporting database access among other things. At the MacWorld Expo in Boston, Roaster Technologies' John Dhabolt demonstrated Version 3.1 (not yet publicly available), which allows developers to choose between Roaster's VM and the MRJ VM. This means that when MRJ 2.0 is available, Roaster 3.1 will support Java 1.1 via MRJ 2.0.

Symantec Cafe 1.5 and Visual Cafe 1.0.1

Click image for expanded view (38K)

Cafe's editor window is in the

foreground, with the class browser

visible just above it. On the right are

two project manager windows for

different projects. Notice that Cafe's

class browser is unable to find the

selected function even though it is

part of the current project.

Symantec's Java tools for the Mac come in two flavors: Cafe and Visual Cafe. Cafe is a standard, Java-only IDE, with its own VM and a JIT. For the most part, other than bug fixes and the addition of a 68K/PowerPC JIT, Version 1.5 of Cafe is not significantly different from Developer Release 2.0, covered my last comparative review of Mac IDEs for JavaWorld. (Mentioned at the beginning of this article, you can also find a link to it in the Resources section.)

Despite the similarity in name, Visual Cafe is a substantially different product from Cafe. Not merely a visual tool living alongside, or grafted onto, the same old Cafe IDE, Visual Cafe is a development environment designed from the ground up with visual development in mind. It strives to let developers create complete Java applets and applications -- not just layout components on screen -- without ever writing a line of code. "Serious" developers may scoff at this idea, and, of course, there are limitations to the concept; Symantec recognizes the limitations, so Visual Cafe doesprovide a full-featured IDE.

Click image for expanded view (70K)

This figure shows how easy it is to add

menus to an application in Visual Cafe.

The property list on the right is

dynamically updated as you manipulate

objects graphically. GUI components

can be dragged and dropped from the

toolbar palette on the top of the

screen directly onto a mock-up of your

running application. This figure shows

only a few of Visual Cafe's libraries

of components, but there are many more.

It's a pity Visual Cafe is so unstable,

because in terms of its design, it

shows evidence of real genius.

Coming soon from Symantec is Visual Cafe Pro for the Macintosh (already available for Windows). On the Windows platform, the main difference between Visual Cafe and Visual Cafe Pro is that the Pro version is bundled with Symantec's dbANYWHRE Workgroup Server, Sybase SQL standalone version, and Netscape FastTrack Server. However, none of these additional products currently exist for the Macintosh, so it's hard to tell in advance what the Mac version of Visual Cafe Pro will actually look like.

Furthermore, Visual Cafe on the Mac is so unstable that it seems Symantec's development team will have their hands full for a while just fixing bugs. Perhaps this is part of the reason that Visual Cafe Pro for the Mac is behind schedule (it was originally slated for an August ship).

Evaluation criteria

I've evaluated the tools with respect to the following criteria:

  • User interface: How intuitive is the product's interface? How Mac-like is it? To what extent does it actually speed development relative to other platforms? "What kind of documentation is provided with the product?"

  • Performance: How well does the VM perform? How fast is the compiler? How stable is the product overall?

  • Functionality: To what extent does the tool provide a full-featured development environment? Does it allow the developer to create double-clickable Mac applications? Does it support native methods? What version of the Java platform does it support?

User interface: Roaster rules the roost

The single most important reason Mac users prefer Macs is that the user interface helps us get our work done faster and with less hassle. This is a very hard thing to quantify, but as you work with a tool regularly, you begin to get a feel for whether the tool is helping you or hindering you.

Developers want tools that allow them to navigate their code in logical ways -- class browsers, hierarchy browsers, method menus, etc. -- without making them jump through hoops. If it takes half an hour to find the right dialog box to turn on the class browser, for example, you lose whatever advantage the class browser provides. Documentation is also a crucial part of an application's user interface. No matter how intuitive the graphical user interface of an IDE is, you're still going to have to turn to the manual at some point. When you do, you want it to be easily accessible, clearly written, and comprehensive.

Editors: It's all in the toolbar

1 2 3 4 Page 1
Page 1 of 4