Java IDE Review
Two Java Environments Compared
It just started brewing so it might be a little weak
By Marty Wachter
Because developments in the Java world refuse to pause for us, with toolmakers rushing to get products into programmers hands with or without their full complement of functionalities, we are compelled to settle for an occasional description of the situation at some arbitrary moment, knowing full well that well be overcome by the rush of events before we go to press. This review was written in mid-May, when, on the Metrowerks side, CodeWarrior 9 (with the corresponding DJ1 update to Discover Programming) had not yet appeared, and, on the Symantec side, neither had the DR2 update to Café - so we couldnt take account of the important changes that those updates would bring. Meanwhile, Natural Intelligences Roaster DR2 was just on the point of release, and because it involved significant improvements we felt it best to wait for it rather than include Roaster DR1 in the present comparison. We need hardly tell our readers that the only reliable way to stay on top of events is to watch the Web. - man
Its about time! Java development tools from the familiar Mac development tool vendors, Metrowerks and Symantec, are finally here. Speculation about their arrival first started showing up in MacTech Magazine and the Internet newsgroups almost a year ago. Was it worth the wait? You can decide for yourself by the time you are finished reading this review, which deals with Metrowerks first release of Discover Programming with Java and Symantecs DR1 release of Café.
Note that these are Java development tools; this article is not about the Java language. MacTech Magazine has been describing the language in detail for some time now; there was, for example, Richard Cardonas Writing Java 102 in the March 1996 issue ([12.3] 25-38), and, since May, Dave Mark has been devoting some Getting Started columns to Java. You will doubtless want to watch Suns Java Web site at http://java.sun.com, and the many other fine Java sites such as Elliotte Rusty Harolds http://sunsite.unc.edu/javafaq.
Being the first commercial release, both products have numerous limitations that I will outline below; remember that by the time you read this, Metrowerks and Symantec will have updates to their tools available on their Web sites.
The best way for me to approach these products is to describe and compare both tool sets from installation to execution.
What You Get
Both products include source code editors with syntax coloring, a Sun-validated Java compiler, Java Applet Viewer, some form of class browser, support for code control, all of the Sun Java example projects converted to the appropriate environment, vendor-specific demo projects, Suns Java documentation in HTML format, and various other forms of documentation and utilities.
The MW product also includes the CodeWarrior Java IDE, which is the full version of their IDE, easily adapted to support Java via a plug-in compiler, linker, and preference panel. A big plus for the Metrowerks package is the inclusion of the MW Debugger, which supports the source-level debugging of .class files in the same way it supports debugging .SYM files for C and C++. Additional documentation is supplied as cool Apple Guide files and interactive help which is also linked to the Java HTML documentation via hypertext links in the Guide files. The entire tool set runs native on 68K and PowerPC platforms.
The Symantec product includes the Symantec Project Manager (which appears also to be the full version) for source editing and project management, and a very preliminary version of a visual GUI development tool called Café Studio .which is similar in concept to their Visual Architect tool, for creating java.awt GUI elements and generating the source code for the interface.
In addition to the documentation on the Metrowerks disk, they include an electronic copy of the book Learn Java on the Macintosh, by Barry Boone. Symantec strikes back with an electronic copy of their own Intro To Java Programming. Although both packages have ample documentation, I really would have preferred the Java API docs in either THINK Reference format and/or QuickView format.
What You Dont Get
In their current releases, both products are missing the promised JIT (just-in-time) compilers that their respective documentation alludes to. I suspect that these compilers will greatly enhance the usability of both tool sets.
Other than the absence of a GUI tool for creating Java AWT interfaces, the Metrowerks product contains everything you need to start developing your own Java applets and applications. I dont know if such a tool is planned, but extending their PowerPlant interface builder would be a welcome addition.
The Symantec tool, on the other hand, is missing two huge features in its DR1 release. If you dont have a Power Mac, youre out of luck until the 68K tools are available. The lack of any kind of source-level debugger will make this release very difficult to use for learning the language and for commercial Java development. JPEG support as well as sound support are also absent from this release.
According to their documentation, the Metrowerks tools require the following minimum configuration:
A Mac OS computer with an MC68020, MC68030, MC68040, or PowerPC processor
8 megabytes of RAM
Mac OS System Software 7.1 or later (youll need 7.5 or the Apple Guide system if you want to use the Apple Guide documentation)
A CD-ROM reader for installing the software
For optimum performance, Metrowerks suggests an MC68040 or PowerPC machine with 16 megabytes of RAM.
Symantec minimum requirements are as follows:
Macintosh 68030 processor (or greater) or Power Macintosh (DR1 supports only PowerPC development)
16 megabytes of RAM
CD-ROM reader for installation
The Symantec documentation did not offer any optimum configuration, but ultimately the only way I could get an applet up in the SPM and run it on my Power Mac 6100 (System 7.1.2) with 24 megs of RAM, was to turn off all extensions and turn on Ram Doubler to get it up to 48 megs.
So, here I am, about to install both products. They each ship on a CD-ROM and contain installers built by MindVisions Installer Vise system, with options for Easy and Custom installations. Metrowerks recommended Easy Install option will need almost 51 megabytes of your disk. Thankfully, Metrowerks gives you the option of installing the tools, documentation, online books, and sample code separately. There is also the comforting Minimal Install option which will cost you under 11 megabytes of space.
The Symantec installer provides an Easy Install option, but it doesnt tell me how much space it will cost me. Only after performing the installation will I learn that Easy Install requires about 35 megabytes of space (5 megs more than the required space according to the documentation). The Easy Install option does not install the full documentation, the extra utilities, or the Café Studio tool. To get around this, you are offered the option of installing the Café Tools, Café Studio, Java Demos, Goodies, and full documentation under the Custom Install choice. Selecting all of the Installation options under Custom Install reports that the full installation will require just under 28 megabytes of space - Im confused!
I proceed with the Easy Installation options for both packages. The Metrowerks system installs everything into a Discover Programming with Java folder on my drive. The Symantec installer is a bit troublesome in that the default installation places the Café tools folders at the root level of my drive, so I have to do some cleaning up after the install. Sure, I forgot to select a directory in the Select a Folder menu under the Install Location option, but I was excited to get started. The Easy Install should be just that, easy. I then have to go back and do a Custom Install to get the Café Studio tool.
OK, now that I finally have these tools on my Mac, its time to see what its all about. Generally speaking, both environments are extensions of their respective C/C++ products. This is fortunate because you dont have to learn new tools to get started. To keep things even, I chose the Sun Animator demo applet, included with both packages, for my tests.
IDE Project Managers
As you would expect from any successful Macintosh tools vendor, both products contain a familiar project model for building Java applets and Java applications (applets are executed via the <applet> tag in HTML; applications are real Macintosh programs that execute when you double-click them). Symantec includes its standard Symantec Project Manager for managing your .java source files and your .html files; Metrowerks uses their CodeWarrior Integrated Development Environment for the same purpose.
Both products include editors built into their IDEs, which support function markers, syntax coloring, drag-and-drop editing, and split panes.
Both products also contain class browsers which are extremely helpful for viewing and editing any object-oriented source code. The Symantec product includes a graphical mode which shows you a left-to-right graphical tree of the projects files. This is a cool tool, but I was easily able to cause a few problems while testing it out. Aside from a few cosmetic bugs like list selections extending beyond the bounding panel, I found that if I double-clicked on a Java library class function the SPM reports that the file cant be found. I tried removing the projects object code, and reset the project paths, but this caused a total system crash. After rebooting, I tried again and this time crashed the SPM by holding the mouse down over one of the graphical leaves in the class browser. Oh, well; it looks like a cool feature. On to the rest of the tools.
As I mentioned before, the JIT compilers are not available in either release. Metrowerks currently offers only one compiler, the Sun-validated MW Compiler which is essentially the same compiler code that the Sun Mac JDK (beta 1) uses. Symantec offers the standard Sun compiler and a faster Symantec Java Compiler that seems to outperform the Sun compilers as far as time to compile is concerned.
Metrowerks doesnt include any sort of interface builder with this release; Symantec, however, has included a preview release of their Café Studio application (which is also PowerPC-only code). This tool reportedly allows you to draw the java.awt interface components with a MacDraw-like tool palette. You can the generate the Java code to create the actual interface in your project. You still have to do some manual work on the resulting code, and several of the java.awt components are not supported. There is also no way of subclassing any of the java.awt classes using this tool. I also found out that there is no documentation for Café Studio on the DR1 disk. You had to visit Symantecs password-protected Café Web site, armed with your user ID and password (which comes on a paper insert to the CDs jewel box) just to get to the Café Studio update, which I found to contain the missing documentation to Café Studio, in Adobe PDF format.
Figure 1. The Café Studio environment
Applet Viewers (The Java Virtual Machine)
Both Metrowerks and Symantec include a modified version of the Sun Applet Viewer. Once your Java source code is compiled into bytecodes, you run your code with the Applet Viewer. The Metrowerks version, called Metrowerks Java, is a bit farther along in that it supports sound. The Symantec version doesnt support sound yet.
I have found that the overall performance of both Applet Viewers is lacking. I sincerely hope that the next release of both products will pay more attention to the performance of Java on the Mac platform. In particular, the graphics drawing implementations are very slow. I have some custom graph-paper code (similar to the Graphing Calculator that came with the Power Macs) which I wrote on a Sparc 4 under Suns Solaris JDK, that flies when run with the Sun JDK, but is painfully slow even on a Power Mac 9500/132!
This part of the review was the easiest. The current release of Café doesnt have one and the Metrowerks debugger is the exact same MW Debug that you use with any other language. You just treat your .class files that the MW compiler spits out as if they were .SYM files. Having a real Mac-based source-level debugger for Java code is the one thing that I have really wanted since I started doing Java development last year with the Sun JDK alpha 3 tools. This tool alone is worth the entire cost of the Metrowerks tool set!
[Incoming Editor-in-Chief Will Iverson adds: As of this writing, all three vendors have shipped debuggers. However, all of these debuggers have severe limitations with regard to multi-threaded debugging, variable display, stepping in and out of code, and multi-language display (e.g. debugging C/C++ and Java code). Consider yourself warned...]
Figure 2. The Metrowerks debugger
The support you get with both products differs a bit. Metrowerks and Symantec both offer some type of phone support, fax support, and internet support. The big differences are that Symantec offers a 60-day money-back guarantee and 90 days (from the date of your first call) of unlimited phone support for installation, configuration, and general use (which in my opinion youll definitely need), after which youve got to pay, while Metrowerks offers their standard unlimited phone support. The other thing, which I mentioned earlier, is that youll need your password and user ID to access Symantecs Café Web site for updates, while Metrowerks Web site is accessible without a password or ID.
Table 1 shows a summary of the features sets of the two environments.
Table 1. Comparative feature sets
Its nice to finally have some options for Java development on the Mac platform. Finally the Internet world will get to see what interesting and useful Java software will look like from the Mac developers perspective. Your choice of Java tools might come down to going with whatever environment you are more comfortable with, just to ease the learning curve, but in the early innings of this game the smaller hardware requirements, 68K support, and the excellent source-level debugger make Metrowerks Discover Programming with Java the clear choice for getting started with Java development on the Mac. However, if you are planning to do any serious Java development, and especially if you require use of Javas awt.graphics system, youll want to get yourself a Sparc station.