Codewarrior 8 Keeps App
Focus"> Humpty Dumpty correctly described the choice facing buyers of application development tools. "The question," he said in Lewis Carrolls Through the Looking Glass, "is which is to be masterthats all." Is the platform the master and the application only a window into (pun intended) a platforms distinctive services? Or is the application the master and the operating system merely a box of generic tools that any platform should offer?These perceived roles of platform and application, as seen by any given development shop, will determine the choice between a platform-focused tool setsuch as Microsoft Corp.s multilingual Visual Studio .Net, which we reviewed earlier this yearor an application-focused tool set, such as Metrowerks Inc.s CodeWarrior for C, C++ and Java programming. We review here the late-spring Version 8 updates of the Windows and Mac OS editions of Metrowerks package, priced at $599 each and available in a combined package at $799, which we tested on Windows 2000 and Mac OS X workstations.We found several significant improvements in this Metrowerks release that will probably keep CodeWarrior in the good graces of its users. However, we did not find the high-level facilities for enterprise database access, or for Web services development or consumption, that highlight the latest offerings from competing toolmakers such as Oracle Corp. Java developers will find quick and convenient aids for generating skeletal applet, application or JavaBean component projectsand in either the Windows-hosted or Macintosh-hosted environments, the same File/New menu choice brought up a list of Java, Mac OS or Win32 project options. The only difference between the Windows and Mac iterations was the inclusion of a Mac OS X Cocoa project type in the Macintosh-hosted tool set. (Being highly specific to the Macintosh, the NextStep-based Cocoa object framework is likely to be of little interest to developers using Windows as their workshop. We had no difficulty in generating projects on either Windows 2000 or Mac OS X for native execution on the other. With Borland Software Corp.s enterprise-oriented Kylix adding C++ capabilities to its Linux-hosted development suite in an update expected this month, CodeWarrior 8 faces a struggle for the hearts and minds of developers who might be looking at alternatives to a Windows-centric universe. On the other hand, growing interest in Apple Computer Inc.s Mac OS Xin its roles as a robust Unix-based native platform, now supported by Apple server hardware, and also as a high-performance Java environmentmight make CodeWarriors cross-platform strengths attractive to developers who have not had previous reason to care about that potential. We suspect that many of CodeWarriors current users, in addition to writers of multiplatform applications, are crafters of low-level, "headless" code such as device drivers or embedded software. For these developers, drawing pictures of GUI screens or data sets is much less important than quickly writing code that accurately does what the developer intended. And both these sets of developers will find, in Version 8s source-code editor, a code-completion facility that surpasses even Microsofts IntelliSense. For example, CodeWarriors list of possible expression completions shrinks with the typing of additional characters until only one possible choice remains, whereas Microsofts code editor moves a highlight bar to reflect more specific input but does not contract the list to show only the remaining possibilities. CodeWarrior also gave us welcome flexibility in deciding how and when its dynamic list of suggestions would appear. Developers targeting multiple platforms are likely to be working with closely related versions of source-code files and may need help in reconciling their differences despite the best efforts of configuration management tools. We particularly liked the visual presentation of differences between files in the CodeWarrior environments integrated comparison tool. We took a quick ride in a time machine, however, that carried us back at least six years when we saw that CodeWarrior has newly introduced visual "wiring" of user interface components for Java developers: a presentation using arrows to indicate GUI interactions. Were reminded of some old Smalltalk environments or of tools such as IBMs VisualAge for Javaexcept that CodeWarriors tools, like those in (what was then) Symantec Corp.s first-generation Café tool set back in that other century, use a clumsy one-way "wizard" to construct an object interaction and generate the associated code. Our subsequent inspection of the "wires" was uninformative. For novice developers, though, this facility has some value as an interactive tutorial. CodeWarriors visual interaction aids are not dynamically bidirectional tools such as those in Borlands JBuilder or even bidirectional-when-you-kick-them tools such as those in Microsofts Visual Studio. Instead, the visual form editor forces an update to the source-code window whenever an application-building operation discovers that the visual layout has been changed. We found that any of several ordinary manipulations could put the source code out of sync with the visual tool and that either of the resulting representations could wind up being reflected at run-time. When all is said and done, though, what will we use when we want to write up some C or C++ or Java code and be sure that we know what its going to do? With an environment that looks and acts the same on either Mac or Windows workstations and that keeps our code front and center in a project manager environment that we still like after all these years, CodeWarrior is a tool that were glad to have in our lab. Technology Editor Peter Coffee can be reached at firstname.lastname@example.org.