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.


White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState