CodeWarrior II
Volume Number: | | 10
|
Issue Number: | | 5
|
Column Tag: | | Tools Of The Trade
|
Codewarrior, A Second Look
Theres more, its better, and theyve responded to customer requests
By Dennis Cohen, Claris Corporation
Well, here it is, ten weeks after the release of Metrowerks CodeWarrior product and coincident (as of this writing) with their DR2 release on CD. How are the company and the product shaping up and living up to the promises made and implied? Now seems like a good time to take a reading.
DR1 to DR2 Activity
The DR1 release of CodeWarrior Gold, made available during San Franciscos MacWorld Expo in January, generated a lot of enthusiasm, especially considering the barely alpha and pre-alpha state of the various components. Included, licensed from Apple, were MPW (sans compilers but with all the other tools), ToolServer, SourceServer, ResEdit, DocViewer, MacsBug (including Discipline), and the standard system utilities plus Apples Mac on RISC documentation. At MacWorld, only the Bronze and Gold versions were being sold. Now, with the release of the Power Macintosh, the Silver edition has been made available. Interestingly, the product was localized for five different (human) languages at introduction and Metrowerks wasnt taking the easy way out on languages - they even had a Kanji version. This practice has been continued with the DR2 release.
The environment, described in my previous article (January, 1994) was well-received, but a few omissions were noted in discussions on the various electronic services. Foremost among these was the inability to use substitute editors or script the environment. While not originally in the plans for version 1.0, the requests for this were sufficient to get Metrowerks to implement full AppleEvent support in the Project Manager and it is available in the DR2 releases. Demo versions of both Object Master and BBEdit are available on the CD. Similarly, I mentioned that there would probably be mixed reaction to the lack of hardcopy documentation. Metrowerks plans to make hardcopy documentation available at an additional charge after 1.0 ships.
The C and C++ compilers for the 68K and the C compiler for the Power Macintosh were at alpha 1, everything else was a development version. Missing from the C++ (and still missing with the alpha 4 releases on DR2) are exceptions and templates, promised to be implemented soon with exceptions at a higher priority than templates since Metrowerks needs exceptions for their own use. One of the Metrowerks engineers said on the Internet that the current plan called for having templates in place by the August CD, with the possibility of a preliminary version via patch before then. By the time this article appears in print, Metrowerks plans to have patchers out on the networks to update users to beta 1 of the C and C++ compilers. Included are the Plauger/Plum-Hall standard C Library and the emerging Plauger C++ library which is tracking the ANSI standard. The PowerPC C/C++ compiler is shipped as a fat binary, allowing you to create native code for the Power Macintosh on either a 68K-based machine or a Power Macintosh. For those who wish source to these libraries, Metrowerks has arranged with Plum-Hall to make it available for their licensing cost (approximately $100).
There are notes and sample projects for using MacApp 3.1 with CodeWarrior. The examples all seem to build and execute properly, but I didnt have enough time to try anything beyond this test for MacApp.
Pascal was a pretty immature compiler on DR1, but got patched to a somewhat usable tool between CDs. The DR2 release, while still pre-alpha at d7, is now usable for serious work. There should be an updater on the networks by the time you read this to move the Pascal compiler to alpha 1. A PowerPC Pascal compiler is promised during the second calendar quarter. Until that time, purchasers of the Silver edition will receive the 68K Pascal compiler so that they may start their porting effort.
The DR1 68K Debugger looked nice, but a large number of its features were not yet implemented, with no 601 native Debugger available. With DR2, we now have Debuggers for both platforms which are almost feature-complete. You can modify variable values in the Debugger and continue running and you can get assembly-level displays while debugging. You can even use the native Debugger to debug MacApp 3.1 applications. The Debuggers are real-world examples of using PowerPlant (see below); both the document and symbolic views are implemented via the class library.
New with DR2 are active profilers for both processors. While active profilers do require some source code modification, they allow you to gather more (precise) data than that provided by a passive profiler. Besides, we all conditionally compile that code for a variety of reasons, so it isnt a detriment when we send out final or even prerelease versions, right?
PowerPlant, the Metrowerks class library, got a very favorable reaction to its non-monolithic nature and full support for scriptable, recordable, and attachable applications. There were, however, pockets of discontent due to the fact that applications built based upon PowerPlant are System 7-only. For DR2, persistent object support was added through the inclusion of NeoPersist from NeoLogic and the documentation went to seven chapters (not counting the separate NeoPersist documentation) from the four which were on DR1. In addition, an encrypted copy of NeoAccess is on the CD in case you want to license it from NeoLogic. Rez templates are included for the construction of PowerPlant object resources. PowerPlant Constructor, while still pre-alpha, now has its basic functionality implemented.
Rich Siegel, of Bare-Bones Software (BBEdit), has written a THINK Project Converter and has given Metrowerks permission to freely distribute it. Other third-party tools and demos are also included on the DR2 CD: the above-mentioned NeoAccess, a demo version of Resorcerer, a demo version of Object Master which can be used for 20 minutes at a time, a demo version of BBEdit, and a discount offer for TheDebugger from Jasik Designs.
Not available on the CD, but available on the Internet and some other services, is a TCL Converter package by Jon W{tte (yes, thats how he spells it). This package allows you to convert your (unmodified) Think Class Library to be compiled by a stock C++ compiler, such as the one in CodeWarrior or MPW.
Future Plans and Promises
Purchase of a Metrowerks CodeWarrior product entitles the purchaser to the CD they receive and the next two releases with the releases scheduled for May, August, and January. Between DR1 and DR2, Metrowerks posted patchers to America Online, the Internet, CompuServe, AppleLink, and probably a few services I dont frequent, allowing users to incrementally update their copies to intermediate versions. This is a practice which Metrowerks plans to continue. Educational pricing has been set in place and the Gold version is $99 to full-time students, Bronze and Silver slightly less.
An interesting announcement from Greg Galanos is that on DR3 (due at this years WWDC), there will be library support for creating MPW Tools with the Metrowerks compilers. This will allow you to create custom tools for use with the included MPW and ToolServer releases.
Metrowerks personnel maintain an active presence on the major electronic services (Internet, AppleLink, CompuServe, and America Online) and take bug reports and suggestions via their Internet and AppleLink addresses - support@metrowerks.ca on the Internet and SUPPORTWERKS on AppleLink. In the ReadMe on DR2, Greg Galanos says to send your bug reports and your suggestions in; they listen and they respond. So far, that is definitely the case, and the electronically connected developer community is responding quite favorably. This provides validation for a thesis Ive seen expressed that the developer community will be far more tolerant of minor shortcomings and missing features in their tools if the tool providers treat them as partners as well as customers and are responsive to input - even if the response is not always affirmative.
As I wrote in the January issue, it is getting to be an exciting time for Macintosh developers.
[CodeWarrior is available through the Mail Order Store (page 89, this issue). If you order through MacTech, ask and youll get a subscription bundled with your order at the same price. Ed nst]
Other Power Macintosh
Development Tools Announced
As mentioned in the main article, Language Systems (Reston, VA) has announced a Pascal compiler under MPW for the PowerPC chip. In addition, they have announced that there will be a version of their FORTRAN compiler to generate PowerPC code. The Pascal compiler is, to most all intents and purposes, the MPW Object Pascal compiler which they have licensed from Apple. Thus, for those of you who were wondering if there would be an upgrade path for your MPW Pascal, Language Systems is now it. I havent seen the PowerPC-generating compiler as yet, just as I havent seen one from Metrowerks.
Just a few days before this writing, Symantec announced their 7.0 upgrade package for Symantec C++ (68K Macintosh) and added mention of a cross-compiling, drop-in tool for an additional $100 which would generate PowerPC code. This is an interim solution until they have their new, native environment ready.
Microsoft has announced that they will be creating a Windows NT-hosted cross-compiling version of their popular Visual C++ product for both 68K and PowerPC-based Macintoshes, both of which will leverage off the Microsoft Foundation Classes.
Borland has stated that they will be entering the PowerPC development tools arena as well, but haven't said with what and speculation is wide-ranging.
As before, Apple is still shipping the FastTrack SDK (MPW-hosted Lucid cross-compiler) and some early adopters are still using IBM's xlc compiler on an RS6000 to build for PowerPC.