Macworld Dev Tools Roundup
Volume Number: 14 (1998)
Issue Number: 4
Column Tag: Tools Of The Trade
Macworld Developer Tools Roundup
by Michael Rutman, independent consultant
What's new on the tools for developers
Macworld and the Developers' Needs
It's always good to see new products at Macworld, and this year was no exception. This year, there were some concerns about whether there would be any new or exciting things in the developer tools market. The tool developers pleasantly surprised everyone by showing a whole slew of new tools as well as new versions of old tools.
A few companies canceled their products claiming lack of sales, but other companies quickly jumped into the void. The new companies have gone far beyond what the old companies ever tried to accomplish. Most likely, those companies that are now gone actually lost sales to competition rather than a shrinking Macintosh market.
The core developer's package these days is Metrowerks CodeWarrior. Metrowerks is now shipping CodeWarrior Pro 2.0, as well as a large number of subsidiary products, such as SourceSafe and Latitude. CodeWarrior is their main development IDE with their compilers, and for most Macintosh developers, CodeWarrior Pro 2.0 is a must buy. Their other products are not as vital, but several of them are very useful.
SourceSafe is a cross-platform source control system. It integrates with CodeWarrior, and is supposed to be easy to use. Metrowerks started with Microsoft's source code, and they have been bringing it to the Macintosh for several years, giving it stability and a Macintosh user experience.
Latitude is a library for porting Macintosh applications to Rhapsody. For developers with an existing code base that want to live in a Rhapsody world, Latitude is a must buy product. Metrowerks is using Latitude to port their IDE to Rhapsody, so Latitude is getting a major workout.
In addition to Macintosh tools, Metrowerks also provides development environments for creating applications on other platforms, such as BeOS, PalmPilot, and embedded controllers. I've been told there are now 10 back ends for the Metrowerks IDE.
In addition to Metrowerks IDE, another must buy tool is Resorcerer from Mathemaesthetics. Resorcerer is the prime resource-editing tool. For many years, ResEdit, being free, was the premier tool. With Resorcerer 2.0's new features, and ResEdit's lack of support, most developers will now switch over to Resorcerer, despite its very high price. At $256 a copy, Resorcerer is currently one of the most expensive developer tools on the market.
Resorcerer has always been a resource editor, but done with the Macintosh look and feel. Creating an ALRT (alert) resource didn't just create a resource, it created the entire family of resources alerts need (actb, ALRT, DITL, DLGX, ictb). Each resource created is linked together, and all of them can be edited graphically. Non-graphical resources, such as string lists, are edited using a template. New templates are easy to use, and ResEdit templates can be imported.
Resorcerer 2.0 goes beyond resources and includes the ability to edit any type of file as a container. Originally planned for Copland, Resorcerer moves away from the resource fork nature of Macintosh files, and instead treats all forks like a container that can hold resources. At first, this may sound like a move away from where its power is, but in reality, it extends the usefulness of the tool. It is now possible to put resources in the data fork. As strange as this sounds, there have been many programs I've worked on where we have embedded resource-like information in the data fork. With Resorcerer's template ability, we would have been able to edit this information graphically.
Another nice product shown was AppMaker version 9. AppMaker's followers will swear by it and refuse to use any interface-creating tool. AppMaker is a bit like Metrowerks' Constructor in that both create the user interface's applications display. Where they differ is in both their power and their ease of use. The easiest way to describe AppMaker is to compare it to Constructor and show where AppMaker shines.
The biggest failing of Constructor is that its ppob holds only half the information needed to create an interface. Custom views need to be coded in a source file, and if there is any disagreement between the code and the ppob, the window won't display correctly. Furthermore, controls have to be hooked up to actions programmatically. There is no way to test an interface without writing code.
With AppMaker, when an interface is done, source files are generated to produce the desired user interface. The source files produced can be Pascal, C, C++, PowerPlant, and others. The source generated includes all the code for creating and hooking up views, including custom views. This automation prevents many errors that creep into CodeWarrior projects that use Constructor.
Another nice feature of AppMaker is its separation of user interface and back end. AppMaker creates source files that control the user interface, and creates stub files to talk to the source files created. With this model, a change in the UI does not break the underlying code. This model also helps prevent the proliferation of objects that do nothing more than tell PowerPlant which window is being loaded.
The demo of AppMaker was a Fahrenheit to Celsius converter. It consisted of a window with 2 text fields, a slider, and a thermometer. Using the inspector in AppMaker, controls were hooked up, formulas were created, and everything was done. Four lines of code, selecting create code, a compile, and it worked. No interaction with the source files was necessary at all. When asked how hard it would be to programmatically change the values, I was told that all the variables have public assessor methods, and calling those will change the values everywhere.
The next type of developer tool everybody has need for is an installer. The installer market has been going through a shakeup over the last few years with large numbers of companies going from Aladdin's InstallerMaker to MindVision's Vise. Both Aladdin and MindVision have new versions, and both respond to fundamental needs of their customers. A comparison between the two products is always tricky, but both offer limited versions on their web site to allow everyone a chance to see for themselves.
Aladdin's biggest customer problem was speed and ease of use. Earlier versions of InstallerMaker could not hold up in a comparison against Vise, and InstallerMaker sales suffered for it. InstallerMaker uses the tried and true Stuffit Engine to get good compression reducing the size of the packages for installation. The new version of InstallerMaker adds installing from ftp sites, uninstalling, time-limited demos, and updater files. Overall, it looks like Aladdin is finally responding to MindVision's growing market share.
In the last year or two, MindVision grabbed the lead with a clearly superior product. Their latest version capitalized on their lead to add a slew of new features. Vise now has hierarchical packages, multiple targets from a single script, custom layout, better drag and drop support, better billboard support, web installer, and many other new features. Vise 5.0 has an improved user interface that many developers will find even easier to use.
Another must have tool is Bare Bones software's BBEdit 4.5. BBEdit has always been a useful tool, and it just gets better. Many Unix users show off the power of emacs and say the Macintosh is just a toy. I can always respond by launching BBEdit and saying emacs is just a kludge. BBEdit is the text editing tool for the Macintosh that puts any other text editor on any other platform to shame. If I started listing all the features of BBEdit now, I would not finish before they came out with a new version with even more features in it. Not only is BBEdit a powerful and useful tool, its relatively cheap price makes it a must buy product.
Altura software has a new version of ObjectMaster. ObjectMaster understands C++, Objective-C, and Java objects, and allows browsing the objects. While other editors, such as Metrowerks and BBEdit, allow some class browsing, ObjectMaster is built around it. A large number of features make ObjectMaster a very useful tool to have around. ObjectMaster does not support compiling a program, but will seemlessly talk to most IDE's, including Metrowerks and MPW. Altura has done a good job of creating a development environment where you code like you design.
The last developer tool is a different type of "tool". DevDepot, however, is genuinely a useful tool to have in that they have all the developer tools for sale at a good price. In addition, they help sponsor the pavilions and advertising for other developer tools. For a developer wanting to buy one or more of the products I've described, DevDepot is a must contact company. MacTech also has a CD with all of its issue through May 1997 fully indexed. Anyone who has let their subscriptions lapse for a year or two, should pick up the CD and see what they missed.
Rhapsody Development Tools
There were a few Rhapsody development tools at the show, but the only one I found useful for Macintosh developers right now is Joy. There are other useful and cool Rhapsody tools coming soon, but Joy was shown at Macworld. The demo of Joy is overwhelming, and a full review would be hard pressed to do this product justice, but I believe that Joy takes development tools to a new level.
Basically, Joy is a command line interface, which can be added to your application. The technology behind the command line relies on Rhapsody's dynamic method dispatch mechanism. Any object can be accessed, and any method can be called. As everything is done at run-time, any method with any parameters can be called on any object in any application linked to Joy.
While an interactive command line to an application is a powerful tool, the creators of Joy have gone way beyond what I've described. Hopefully, at a later time, we can present a full review of Joy to our readers.
Other Tools Developers Would Find Useful
While developers will use most productivity software, there are some products, such as product management software, that are of interest to developers even though they are not developer-only tools. Walking the show floor, I found quite a few new products that many developers will find a useful addition.
One of the current dilemmas facing Macintosh programmers today is cross-platform connectivity. AppleShare is a great tool for transferring files between Macintoshes, but when Windows machines are involved, something extra is needed. Two products resolve this, Miramar's PC MacLan, and Dave. Both products allow file transfer and printing between the platforms, but they do it from the opposite sides. Dave is installed on the Macintosh and runs on the Macintosh talking Windows. MacLan installs on a Windows machine with Macintosh clients talking their own language. Depending on your situation, either product may be more appropriate. As a Macintosh user, I found MacLan difficult to install, but I'm sure that anyone who knows Windows would find it easy.
Dave, on the other hand, installs and acts like a Macintosh program should. Without reading any installation directions, I installed Dave, and in the Apple Menu, there was a DAVE Access menu item, exactly like I expected. Opening it told me that I had not configured NetBIOS, and told me where to go to configure NetBIOS. From the NetBIOS control panel, as I moved the mouse around, each field was described below; a kind of contextual help that made configuring easy. The only down side to Dave was my needing to go to the Windows machine and set up domains and stuff.
Another useful tool I saw was PageCharmer. PageCharmer is a set of useful Java widgets ready for customization and insertion into a web site. Most developers I know have a web site, and making a cool web site can drain hundreds of hours. There are many web page creation tools, from DreamWeaver to BBEdit, but PageCharmer isn't for creating web pages, it's for adding the widgets to make a page look nice. It has a very nice interface, and customizing buttons and maps was very enjoyable.
While not a tool, I did look at the Contour mouse. The Contour mouse is molded to fit the hand, and different size mice are available. As I suffer from a bit of RSI, I am always looking for new ergonomic devices. The mouse has a different feel from the trackball and normal mice. I don't feel the need to grip it as hard as a normal mouse, but I do feel it a bit more in the elbow. I haven't had the mouse long enough to know if it works better or not, but I suspect that it will help my wrist, where I need it most. The mouse does have two drawbacks, and both of those are only relevant if you share a machine. The mouse, being sized and molded, will only fit my middle-sized right hand. If my wife, who is left-handed and has a smaller hand, wants to use my machine, she will have trouble.
Quite a number of new and updated products were all over the show floor. A lot of good hard work has gone into making developers' lives easy. For those that could not attend the show, I hope I've been able to bring you just a taste of the tools that can make your programming easier.
Michael Rutman is an independent software developer for Macintosh and NeXTSTEP. While working at Software Ventures, he lead the development of Snatcher and MicroPhone Pro for NeXTSTEP. He also worked on the MicroPhone Pro for Macintosh product line. To contact Michael Rutman send mail to firstname.lastname@example.org.