CodeWarrior for Red Hat Linux, GNU Edition, Version 4

Metrowerks is releasing two versions of CodeWarrior for Red Hat Linux (with SuSE releases to follow): the GNU Edition and the Professional Edition. The GNU Edition is the subject for today.

Although installing the CodeWarrior IDE is quite simple (./ from the root directory of the CD-ROM), getting a fully functioning system can be a bit complicated and involves some compilation. That is, if you want DDD (DataDisplayDebugger, a graphical front end for several debuggers including gdb), you have to get it from the CD-ROM, and if you want to do C++ development, you have to get egcs-1.1.2 from the CD-ROM, compile and install it (unless you have these things already). Also, you must edit your profile (or make symlinks) so that egcs will be used instead of gcc. Probably anyone fluent enough in Linux to develop projects, which need to be managed and integrated, can also unpack a .tgz file using tar -xzf and run make. Still, these things ought to have automatic installation available—ease of use is supposedly one of the benefits of commercial software. Since CodeWarrior currently exists for only Red Hat 5.2 and 6.0 (with SuSE soon to come), it should not be that difficult to make an easier, automatic installation program.

One element of installation which long-time free software users may find amusing is the license. When you start the script, you are greeted by several pages' worth of a “licensing agreement” which you must accept or the software won't install. The language is a bit pushy legalese, but somehow it's awfully funny to find something like this on Linux. (After all, who ever reads that stuff when Netscape first starts up?) I don't know if these last-minute licenses are legally binding, although you can supposedly return the software to the dealer and obtain a refund if you disagree. Either way, the software is more useful if you choose to install it.

Look and Feel

Figure 1. CodeWarrior Screenshot

Ideally, an integrated development environment should be a pleasant one. This means users should like the various menus, buttons, windows, bars, other functional interfaces, the debugger and most of all the editor (unless you spend more time in the debugger). CodeWarrior's editor is neat enough; it puts comments, keywords and strings in different colors than the main code, which is nice for some people. (Actually, it would be neat if console editors did this more easily.) In fact, you can customize all sorts of coloration into the editor. It does not, however, automatically parse and produce attractive C code the way Emacs does. Also, scrolling the page with the scroll bar or the PageUp/PageDown keys leaves the cursor where it was, so once you find the correct line, it gets lost when you press a cursor key (you must click with the mouse to get your cursor to the right location). This could be good or bad, depending on whether you tend to scroll through the code and either forget where you began or forget which line you found.

As far as windows and menus are concerned, everything is laid out in logical places and the menu entries are diverse enough to offer a lot of varied functionality, while at the same time there are not more entries than there ought to be. The file menu is straightforward and simple, although the scroll bar does not scroll through files in real time; that is, it updates the screen when you've finished moving the bar. The Search menu has much to offer for searching, the Project menu contains a whole bunch of project-oriented functions (this is where you “make”), the Debug has many apparently permanently ghosted options (the debugger is not integrated with CodeWarrior—only loaded by it), there is a Window menu for dealing with the numerous windows of code, and an Info menu which actually has some configuration options for the IDE. All in all, it's actually fairly easy and obvious to get around and code. People who have never used CodeWarrior before may nevertheless find it familiar, and perhaps somewhat eerie, when the machine knows exactly what to do despite being given somewhat vague instructions.

Application Demo

As a short and clever method for introducing people to the CodeWarrior IDE, Metrowerks has included an Application Tutorial which is a version of GNUGO, edited to include a couple of bugs so that you can learn the debugger. The application tutorial goes through the steps of importing the source-code package into CodeWarrior, editing, compiling and debugging it. One curious quality of the 70-page manual in which these instructions are detailed is that often the details are not exactly correct. Still, it is not difficult to figure out what is actually meant (for example, select “Break at” instead of “Set Breakpoint”).

The “walk-through” is just that, plain and simple, yet adequate to introduce a user to the steps of program development. The learning curve is, well, short. From the moment CodeWarrior booted, I could intuit everything I would need to do. The names of functions are self-explanatory, the software never once crashed or froze (even temporarily), and the only thing that confused me was I had to change permissions on the source directory (chmod 777, actually) before I could get started. Also, I appreciate that Metrowerks chose GNUGO for the demo program because this excellent game is often overlooked.