Java development environments from Symantec and Metrowerks are good first steps, but both still need some refinement
Java-mania rages 'round the world. some developers have refrained from joining the fray, while others have tinkered with the raw, first-generation tools coming out of the Java skunk works at Sun Microsystems. Finally, two of the most highly respected providers of high-powered, well-supported development tools have created more civilized environments fo r Java development. These first-class, second-generation integrated development environments are:
Both companies' tools are based on their existing C++ integrated development environments. Metrowerks owns the high-end market for C++ development for Macintosh with its Code Warrior line of products. Symantec, a major player on both Windows and Mac for years, offers Symantec C++ 7.0 for Windows and Symantec C++ 8.0 for Power Macintosh. Symantec shipped the first native C++ compiler for 68K Macintoshes in 1993.
This doesn't mean, however, that Cafe can integrate easily with your existing Symantec C++ environment. Cafe must be installed in a directory differ ent from the C++ directory to avoid conflicts among shared components and configuration files. Also, if you have installed other Java development tools on your Windows system, uninstall them and clean up the Java environment variables to avoid unpredictable results when running Cafe.
Since both products are based on C++ environments, they should be familiar and quite comfortable to use. But be advised: The products are a bit premature. I can appreciate Symantec's and Metrowerks' efforts in getting these useful tools to market in a relatively short period of time, and I can see the advantage of using these integrated packages over tools from lesser-known vendors or less sophisticated tools. But neither Cafe nor the Code Warrior Java tools are feature-complete or without bugs, and both have obvious deficiencies in usability.
In the spirit of the breakneck development and distribution cycles of many World Wide Web-oriented products, both companies plan update releases this month, with further releases to follow.
Symantec provides a full-year subscription for Cafe updates through its Web site, and Metrowerks gives Code Warrior Gold purchasers two free CD-ROM upgrades. Metrowerks' Discover Programming with Java customers will get free Web updates until the next full CD-ROM release early this fall.
You will definitely need these updates, too. Cafe for Windows 1.0 will soon be supplanted by version 1.2, and Cafe for Mac will move from DR1 to DR2. All the products' Java components are based on Sun's Java Development Kit release 1.0, but they soon will be updated to version 1.0.2. That said, both product families offer full-featured project managers, editors, and browsers.
Symantec Cafe
Symantec Cafe's integrated development environment includes project management tools such as the slick Symantec Project Manager for the Mac; class editors consistent with those for other object-oriented languages; the Cafe Studio
visual design tool for user interface layout and code generation; and a debugger integrated with the source code editor on the Windows platforms. All exploit the fundamental features of their host platforms.
Cafe for Windows has two agents: AppExpress and ProjectExpress. These wizard-like tools guide novice users through setting up a new Cafe project and populating it with default applet or application code. This can be handy, but with a generous number of sample applets and applications packaged with the product and more available on the Web ( http://www.gamelan.com ), it often makes sense for more experienced users to start with a sample applet and modify it to fit their needs.
Symantec Cafe for Macintosh is not a brain-dead emulation of Cafe for Windows--it is clearly targeted at Mac users. On Macintosh, Symantec Project Manager (SPM) sports the latest Finder goodies like drag-and-drop and nested folders, as well as the AppleEvents interprocess communications mech anism and AppleScript language for full scripting and macro recording--all nicely inte- grated with the Finder.
Unfortunately, SPM is not as feature-complete as the Windows version and comes up short when integrating with Cafe Studio. For example, Symantec's menu of AppleScripts includes one titled "OpenDoc in Cafe Studio," but it erroneously fires off the "Find Doc in Finder" script instead. Also, the Mac version is missing two features in Cafe for Windows: customizable workspaces--for selectively hiding windows not in use--and the Express agents. On the plus side, SPM for Mac lets developers keep several projects open at once, whereas SPM for Windows will close the current project when another is opened.
The project view lists all files in the project and can act as the central file manager for adding, deleting, and opening files. Double-clicking on a file's name opens the source files in the source code editor and opens resource files containing visual elements, layout information, and event handle rs in Cafe Studio.
In the Windows version, the source code editor hits the major features: search and replace with text and regular expressions, macro recording and scripting, color syntax highlighting, auto-indentation, command-to-key mapping, diff file comparison, and editing bookmarks. It also will emulate other text editors like the Unix favorite, Emacs. Scripts can be written for tasks with Symantec's Basic-like macro editor.
For the Mac, the source code editor has the same major features, and again exploits some rich features of the Mac interface such as drag-and-drop editing and AppleScripts for robust system-level command scripting. Developers can swap in other editors such as the versatile BBEdit from Bare Bones Software in Bedford, Mass.
Cafe is the only Java IDE from a major vendor that offers a visual layout tool. Cafe Studio generates Java source code from visual form elements. Controls, such as menus, buttons, list boxes, and text controls, are laid out in a WYSIWYG drag-and-drop fas hion. Studio generates code stubs for the control's event-handling methods, which the developer fleshes out in the class editor. The version of Cafe Studio shipping with the Mac version is a prerelease product and is marginally useful for basic form layout.
The class editors in both the Windows and Mac versions of Cafe follow the layout and editing conventions set by Smalltalk environments. Cafe for Windows provides the usual three-pane interface: Classes are listed in the upper left pane (with graphical, alphabetical, and hierarchical views), functions and data members for a selected class are in the upper right pane, and the implementation of a selected member is displayed in the bottom half pane. The member's implementation can be edited in place in the bottom pane.
The Cafe for Macintosh class editor is more versatile than its Windows counterpart. Its window can be split into as many panes as will fit on your screen. Pane contents can be any mix of classes, functions, data members, source code, an d files. Class panes can show alphabetical, graphical, and hierarchical views.
A Java source-level debugger is nicely integrated with Cafe for Windows, and one is promised for the Mac version but not yet delivered. Cafe's visual debugger allows setting breakpoints by clicking any executable line of source code. Conditional breakpoints cause execution to stop when an expression evaluates to true or after a specified number of passes.
Another window displays the call chain--a list of all code packages and methods executed by an individual thread. An object displayed in the call chain can be dragged to the watch window, where its contents are displayed. The thread view identifies each of the applet's threads and allows them to be individually suspended and resumed.
Cafe adds some notable features to Sun's Java Development Kit. The complete JDK 1.0 is there, including the Java class libraries and sample applets and applications. The Sun Javac compiler is thrown in, but Symantec pushes its bundled fast er byte-code compiler.
Another important part of the Cafe family is Symantec's just-in-time (JIT) compiler, which is free to owners of Cafe. Usually, Java applets and applications are run through byte-code interpreters--Sun's Applet Viewer or those embedded in browsers such as Netscape Navigator. Each time the applet's windows are repainted or the applet responds to an event, the run-time reinterprets the byte codes. A JIT compiler will optimize that process by compiling the byte code to machine code first time through, so that subsequent passes through the applet or application logic are sped up significantly. Unfortunately, because it is a standalone tool, the Symantec JIT compiler won't accelerate Java applets when using Navigator.
The good news is that Microsoft and Apple, among others, have announced plans to include Java run-time support in their desktop operating systems. The Symantec JIT compiler for Windows 95 and NT is not shipping with version 1.0 on CD-ROM, but is available to registered u sers via FTP download from Symantec's support site on the Web. Symantec has promised a Java JIT compiler for the Mac this summer.
Metrowerks
Metrowerks is shipping two Java development products: the highly successful Code Warrior environment for Macintosh with a new set of Java tools, many of which are brand new just for Java; and Discover Programming with Java, a nicely packaged set of Java books, samples, and tools. The package is a subset of the Code Warrior product, but includes the full Java toolset.
Metrowerks has put together the best hyperlinked documentation package for Java available anywhere. An electronic version of the book Learn Java on the Macintosh by Barry Boone (Addison Wesley, 1996) is included on the CD-ROM, along with more than 4,000 electronic pages documenting the Java API, language syntax, and virtual machine specification.
Metrowerks has leveraged the Mac's AppleGuide help facility to document the Code Warrior environment and Code Warrior's Java implementation . Most documents are provided in three formats: Adobe Acrobat, HTML, and Apple DocViewer.
Discover Programming with Java is clearly targeted at the Java learner but doesn't skimp on power-user features. The package contains the Code Warrior integrated development environment, which is well-known to many developers of Pascal and C++ projects on the Mac. Code Warrior has a well-layered, plug-in framework that enables the creation of executables for several target platforms, including 68K and Power Macs; Windows 95 and Windows NT, with or without the Microsoft Foundation Classes; General Magic's Magic Cap; Be Inc.'s Be operating system; and now the Java virtual machine.
The integrated development environment effectively ties together a project window, source code editors, and class browsers. But the Java source-level debugger and the applet viewer are not integrated at all. This is scheduled to change in future releases.
The project window is similar to the one in Symantec Cafe for Macintosh, listing all files in the project with various status flags. Both have a Finder-like look, but only Cafe supports nested, hierarchical projects and drag-and-drop.
For serious projects, Metrowerks CodeManager is a $399 add-on source code control system based on Microsoft's Visual SourceSafe. Cafe for Mac has a built-in source code management system. Cafe for Windows has no facility for source-code control.
A double-click on the name of a file in the project window will fire up the source code editor. The editor offers the usual feature set with nothing spectacular. The only editor available in the Discover Programming with Java package is Code Warrior's, which has no macro capability.
For those who prefer a classic approach to editing object-oriented source code, Metrowerks offers four browsers: multiclass, single-class, symbol, and catalog. The multiclass browser, like the Cafe class browser, uses the Smalltalk style to display all classes, methods, data members, and sources in the project. The single-cla ss browser displays one class at a time. The catalog window will list all symbols by category (class, function, global, etc.).
Code Warrior's visual debugger matches up well with Cafe's Java debugger. Developers can set and remove breakpoints directly in the debugger's source window, although conditional breakpoints are not fully implemented in this release. Developers can step through both source code and disassembled byte codes. A thread window is available for looking at how your threads perform, but multithreaded debugging is not supported.
The debugger is initiated via drag-and-drop from Finder windows or through the standard file dialogs in the debugger application. Usability would be greatly improved if files could be dragged from the development system's project window onto the debugger, or if the debugger could be fired up from a development system menu.
The applet viewer comes rolled into an application called Metrowerks Java, which also includes other Sun Java Development Kit tools, inc luding the byte-code compiler and a command-line interpreter.
Like Symantec, Metrowerks includes Sun's Java compiler and has developed its own Java byte-code compiler, which is several times faster than Sun's. Both the Symantec and the Metrowerks compilers seem to match closely the reference compiler from Sun, but my research shows that only the slower Sun compiler will consistently produce byte codes that will run across different platforms.
Metrowerks also throws Microsoft's Internet Explorer 2.0 onto the CD-ROM. While useful for viewing the HTML-formatted documents, Internet Explorer 2.0 for the Mac does not run Java applets. The developer is left with only the applet viewer or a beta release of Netscape Navigator (not included) for testing code on a Mac.
The Bottom Line
The bottom line with Cafe and Code Warrior with Java is that they are both early entries in the field of Java development environments, with all the good and bad that comes with that.
As learning tools, Cafe and the Discover Programming with Java subset of Code Warrior can be helpful for experienced C++ developers. Both products have excellent documentation on CD-ROM, especially the book included with Discover Programming with Java. Printed documents are sparse, though.
Corporate developers using Java as a starting point for learning object development may be a bit underwhelmed by the Sun Java environment underlying the Cafe and Code Warrior product families. Java has its benefits and its distributed architecture is groundbreaking, but the supporting class libraries, like the decidedly bland and underpowered Abstract Windowing Toolkit of GUI components, are inadequate.
Still, Java looks like it's here to stay. Both of these products are good environments to start learning Java as it grows to maturity.
Jeff Jurvis is Internet application development consultant at the St. Paul Fire and Marine Insurance Co. in St. Paul, Minn. He can be reached at jeff@mn.uswest.net
See related story:" Coming Your Way: More Java Tools "
InformationWeek http://techweb.cmp.com/iw
Boeing seeking Software Engineer 5 in Anaheim, CA
KForce seeking Inside Sales Associate in San Diego, CA
Amalgamated Bank seeking Chief Information Officer in New York, NY
Apollo College seeking Medical Billing and Coding Instructors in Albuquerque, NM
Allstate seeking Exlusive Agent in Las Vegas, NV
For more great jobs, career-related news, features and services, please visit our Career Center.