SAN MATEO (05/08/2000) - For those companies that are making honest strides toward supporting wireless, mobile-computing devices in their enterprises, many programming challenges exist. The need to balance performance, predictability, and robustness while making your applications suitable for the limited footprint of these resource-constrained devices makes them a difficult platform for which to design applications.
Fortunately, small-device programmers have a few tools at their disposal to make things easier. Key among these is Sun Microsystems Inc.'s PersonalJava standard, which allows those already proficient in Java to easily take on programming for small, mobile devices. PersonalJava is a subset of the Java 2 Micro Edition (J2ME) and already has been licensed by more than 1,300 companies including TCI, Motorola Inc., and Sony Corp.
Metrowerks Corp. CodeWarrior PersonalJava Platform Edition Version 1.0 lets users make the most of the PersonalJava standard while including all the tools and functionality of the traditional CodeWarrior IDE (integrated development environment).
Judging by my recent evaluation of a late-release candidate, this version of CodeWarrior will be a powerful asset to those who are breaking into the Internet device space. It will provide the ability to create applications for high-end networked devices and other appliances that support the PersonalJava platform.
Although it competes in an ever-increasing field of Internet-appliance and embedded-device development environments such as Wind River Systems Personal JWorks and Insignia Solutions Jeode, this release of CodeWarrior has everything it needs to become the category leader.
It includes a Java compiler, a RAD (rapid application development) environment for the Abstract Windowing Toolkit and Swing, a validation testing tool, and project templates that jump-start development, providing everything you need to immediately begin creating small device-ready applications.
My installation of the product was uneventful, despite the fact that Metrowerks had just exposed a bug in Sun's PersonalJava Emulation Environment (PJEE), which required me to preload a fixed PJEE. Once I had installed CodeWarrior, I started it up and was immediately pleased to see the many types of Java programming tasks that are supported. Aside from PersonalJava applets and applications, I also was given choices for developing standard Java applets, applications, and even JavaBeans.
I chose to create a simple PersonalJava application that would display a text message similar to a stock ticker. I was offered a choice of creating projects from scratch or from prebuilt templates. I selected a template and was presented with a project preconfigured with all the necessary libraries and source files for that type of project.
I immediately found the environment intuitive and easy to use. I especially liked the fact that I could set markers, or bookmarks, at specific locations inside my code for easy navigation when working in more than one spot at a time. I enjoyed the ability to right-click on any method and have the tool find not only the definition but also all the implementations, which is a convenient time-saver.
The debugging capabilities really made the tool shine. Although I was initially confused as to how to enable the debugger (you turn it on from within the Project pull-down menu rather than the Debug pull-down, as I would have assumed), adding breakpoints to my source required only a right-click of the mouse.
I then chose to validate my code using JavaCheck, a developer tool that was included to test applications and applets for conformance to the PersonalJava specification. Although it's a separate tool, JavaCheck was integrated well. By simply setting the post-link compiler to execute JavaCheck, I was able to determine quickly that my application adhered to the PersonalJava spec.
I then chose to try out my application from within the emulated environment.
Testing within the emulator consists of a command-line call with the specific tool desired and, if testing an applet, the name of the class file or HTML form. Only the output uses a graphical interface. The emulator displayed my text with no problems, making me confident that moving it to another PersonalJava environment would work.
Finally, as expected for an IDE such as this, support for version control through third-party products such as Microsoft SourceSafe and Merant PVCS is available. And for the true "bit head" in all of us, I was happy to see that I could even disassemble my compiled source code, enabling me to view the generated machine code.
Although seemingly all glory, the release candidate I tested did have a few rough edges in it. I found many spots where help text was unavailable. I also encountered a few program exceptions that, once thrown, crashed the environment.
If these bugs are worked out, there is little that I can say by way of criticism for CodeWarrior PersonalJava Platform Edition Version 1.0. The tool is worthy of any company that has its eye on mobile computing application development.
Tim Fielden (firstname.lastname@example.org) is a senior analyst for the InfoWorld Test Center.
THE BOTTOM LINE: BETA
CodeWarrior PersonalJava Platform Edition 1.0Business Case: This version of CodeWarrior gives organizations the tools they need to successfully develop applications for small Web-enabled devices. It uses the same IDE as do past CodeWarrior versions, letting you leverage current development talent.
Technology Case: CodeWarrior offers standard editing, debugging, compilation support, and useful add-ins such as JavaCheck, the Truffle Graphical Toolkit, and an emulator environment for testing. It supports creation of both Java and PersonalJava apps.
+ Excellent debugging capabilities
+ Easy-to-use development environment
+ Complete development suite
+ Includes JavaCheck and the PersonalJava emulation environmentCons:
- Some beta bugs present
- Missing help text
Platform(s): Windows 95/98/2000, Windows NT, Mac OS, SolarisShipping: Mid-May 2000Metrowerks Corp., Austin, Texas; (800) 377-5416; www.metrowerks.com.