The magazine of the Melbourne PC User Group

CodeWarrior Profesional 2
Bob Burt
bobburt@melbpc.org.au

The CodeWarrior series of products are probably new to most readers of PC Update. Developed by Metrowerks, they are of particular interest to professional programmers, since they provide an Integrated Development Environment (IDE) for software development across a range of platforms, including Windows 95, Windows NT, Mac OS and others. Support is also given for many common languages, such as C, C++, Java and Object Pascal.

Although the IDE eases the burden of changing to a different platform, this review will be deliberately biased toward its use under Windows 95 and, to accommodate my programming limitations, will assume Pascal to be the language of choice. Fortunately for me, the Pascal provided is virtually identical to the Turbo Pascal with which I am already familiar.

The early days

I had two difficulties while preparing myself to undertake this particular review. First, the amount of printed documentation which comes with CodeWarrior is limited to one QuickStart manual of 40 pages, which is sparse indeed, bearing in mind the complexities of modern-day programming. Fortunately, the software is supported by a huge volume of online material, claimed to be over 10,000 pages. I felt it necessary to print out and study at least a proportion of the key documentation before I became comfortable with the reviewing task.

The second difficulty arose after I had installed the software ready for familiarisation and review. I had already registered the product with Metrowerks on the Internet. Almost exactly two weeks after doing so, an airmail package arrived from Austin, Texas with Release 2 of the software provided on three CD-ROM discs. So, do I review Release 1 or Release 2 or both? As I found that there were some major improvements in Release 2, I decided to remove Release 1 from my hard disk (all 300 MB of it) and install Release 2. Herein lay the first improvement - only 161 MB needed, although part of the pruning was due to the IDE being set up without its Help files.

The package

Release 1 of CodeWarrior Professional is a new edition of CodeWarrior which combines the previously self-standing Mac-hosted and Windows-hosted versions. Three CD-ROMs provide, in addition to the IDE:

  • Windows 95/NT Tools and Reference
  • Mac OS Reference
  • Mac OS Tools
R elease 2 is contained on three CD-ROMs also, but with the material distributed rather differently. The essential change for Windows 95-based installation is that a second disc contains the Windows-related reference material. Even more online documentation is included with this upgrade than for Release 1.

The documentation

The material is made available in a number of formats. For Windows use, it is variously available in the standard WinHelp (HLP), Acrobat (PDF) and HTML formats. To accommodate HTML browsing, a copy of Internet Explorer is provided.

The core documentation is the IDE User Guide, the Debugger User Guide and four Acrobat-based tutorials in interactive slide-show format to familiarise you with the IDE and its major components.

Then there are Language and Compiler manuals. For example, for my Pascal needs there is a Compilers Reference, an Error Reference a Pascal Language Reference and a Pascal Library Reference, all in PDF format.

Targeting manuals tell you what you should know about developing code for your selected platform. For our needs, therefore, there is a Targeting Win32 manual for the Win32 platform. This shows the use of the supplied Win32/x86 compiler, linker, resource compiler and debugger to prepare a variety of Win32-based projects, including applications, static libraries and shared libraries (DLLs). A copy of the Win32 SDK Reference from Microsoft is also included.

If you are not happy with the online access to the information, both language and targeting manuals can be purchased separately as books. Unfortunately the online format for the major books does not permit printing out from the Acrobat reader.

The Metrowerks Web site includes, among other things, some additional books such as Programming Practice: Pascal (486 pages) and Principles of Programming (526 pages). These are also in Acrobat format and in these cases permit printout.


Figure 1. CodeWarrior IDE showing Editing Window and Project Window


Figure 2. Pseudo Web site using MS Internet Explorer with a resident HTML file

Running the IDE

When you launch CodeWarrior, you initially see a 6-menu bar at the top of the window with a 21-icon global toolbar immediately below it. The remainder of the screen is unused until such time as you create a project, manage its files, build your project, create your code, compile, link and debug it and so on. So if you are new to programming, you will have a steep learning curve. However, if you have programming experience, it is more simply a matter of becoming familiar with the development tools which you will use to create your projects.

The Project Manager and Editor

These are two of the major development tools which you use from within the IDE. The Project Manager holds all the files that you need for each specific project, which you gather together into an .MCP file which you name to identify individual projects. Some basic project files are available which contain start-off files for the particular language you will be using.

All files are managed from within the Project Manager. You will, of course, be spending most of your time preparing your source code, for which you use the Editor, but you would normally save each file within the Project Manager so that it can be compiled and linked, although such files can be added later if necessary. You set the link order from within the Manager and you can compile just a selected file from a project if so required. You can also force a file to be compiled the next time you build a project (you touch the file) and you can also untouch the file to avoid its compilation.

You can have multiple projects open at the same time and create multiple builds of the same project.

The Editor uses syntax colouring and styling and has code-navigation shortcuts.

The Debugger

Another major component of the IDE, the debugger allows you to watch source code execute on a line by line basis and view or edit variables to track down any problems with the project. It can actually be operated independently of the IDE, in which case you would open a symbolics file (.SYM) to debug the project associated with it. From within the IDE, you simply enable the debugger to launch it and open the Program and Browser windows.

You control the debugging by using commands on the toolbar (also available on the Control menu). Naturally, you can step through your program, set break-points and view the values of registers and variables. The debugger works in any of the supported languages.


Figure 3. Acrobat-generated text from a book "Building Windows 95 Applications"


Figure 4. Metrowerks' true Web site

Technical support

Registration of CodeWarrior entitles the user to 12 months free technical support. I am able to vouch for the effectiveness of this support (in my case, at least). It so happened that when I was checking on the Guided Tours available with Release 2 I found that the Project Manager sample (.MCP file) which is used for all four Tours generated an Unknown Error message and would not load either directly from its CD-ROM, or from a copy created on the hard disk. So the Tours could not be completed. I reported this to Metrowerks by e-mail and received an acknowledgment and reference number within 24 hours. After a further 24 hours I received a detailed reply, suggesting the project file may not have been properly updated. A replacement was created by Metrowerks and supplied as a ZIP file. This worked fine and all the Tours then ran smoothly. Problem solved in quick time.

Conclusion

Once I had completed the formidable task of studying a sufficiently large sample of the documentation to properly grasp how to create and complete a project using the IDE, I found the interface fairly simple to use. In my case, I would need yet more time to fully appreciate the MFC libraries for building Windows 95 applications, for example, but the tasks of creating simpler projects from my Pascal code were completed gracefully. The IDE is speedily responsive and you have all the tools you need at your fingertips. For the busy full-time programmer the support for multiple open projects, multiple targets per project, sub-projects and threaded execution will be a boon.

CodeWarrior Professional is well worthy of serious consideration by professional programmers.

Reprinted from the February 1998 issue of PC Update, the magazine of Melbourne PC User Group, Australia

[About Melbourne PC User Group]