March 94 - SoFAWA Notes
Both the December and January SoFAWA meetings featured development environments. Some things old, some new, some borrowed, nothing Blue. In December we saw a demo of Prograph, and in January a tour of Metrowerks CodeWarrior.
David Prue, a local consultant and long-time Prograph user demonstrated the language and environment to us. David was joined by Pete Yared, who showed an application-launcher he developed with Prograph. Their tour impressed our group with the power of the Prograph system. I think the main difficulty with grasping the Prograph language is that a newcomer first tries to do a one-to-one mapping with what he knows about C or Pascal, simply switching icons for keywords. This lasts until you discover details like: functions can declare multiple return values, there is no if-then-else construct, and the dataflow design prevents you from always knowing the sequence in which instructions will execute. Soon you realize that you have to step farther back, ignore language features for a while, and look at the way Prograph solves more general programming issues.
Many of the features of Prograph are becoming familiar ones: interpretive execution with interactive debugging, hypertext browsers, and editors that allow you to construct an interface for your application. To each of these features Prograph adds an extra little touch. While debugging, for example, you can essentially "roll-back" the execution of your program to an earlier state. The editor uses Think Reference to provide toolbox help, and also uses the same technology to supply information on your own code. And a large collection of editors for their interface classes allows you to construct menus, windows, and dialogs directly, rather than by typing a lot of "syntactic sugar" for the benefit of the compiler. In the future, a data base connectivity kit is expected to provide classes to help programmers use Sybase, Oracle, and Butler data base systems. It is also interesting that 90% of Prograph is written in Prograph; I've always found this to be a good indication of the quality of a development product.
I will side-step the question of whether the iconic "draw your program" concept is easy to use or not. Those who know how to use Prograph to implement the idioms commonly found in their business seem to have no problem with the drawing aspect. And, given the dataflow aspect of the language, it is not clear how a textual format would provide a more intuitive description of instruction execution.
One interesting piece of news was that Prograph, the company, intends to "give away" the language (that is, not impose excessive fees or restrictions) to encourage other companies to produce compilers, editors, and even competing development environments based on the Prograph language. This, along with a formal ANSI (or equivalent) standard, should help convince those skittish about a single source for the language to consider using it. Lastly, David had a number of good things to say about how the company treats its developers. In particular, there are no royalties or license fees for products developed with the environment. I encourage you to take a look at the recent articles in FrameWorks to get a better idea of the technical details behind Prograph. For those of you who have pictured using a high-level development environment, but didn't want to build it yourself, you may find that Prograph has already done the work for you.
In January (described by some, paradoxically, as "unseasonably cold") yours truly presented a tour of Metrowerks' CodeWarrior (CW) development environment. Which is to say that we ran the menus, checked out all of the preference panels, watched a compile, browsed the PowerPlant sources, disassembled some 601 code, and constantly changed the font of new source files to 14 point Chicago (not too bad with TrueType!). Suggestion to all tool developers: provide some sort of "demo preference" where a document's font is automatically, and non-destructively, overridden with a font that is legible from a few rows back. While I'm thinking of it: thanks to Graphsoft's Rich Diehl for loaning us one of those terrific nView display panels. Also thanks to Phil Flack for his notes on converting MacApp 3.0 source to MacApp 3.1. Phil found CW's compile speed to be very useful while working through the syntax changes needed to use 3.1 and the new headers.
CW's compile speed is, of course, a major attraction, especially to those using MacApp with MPW. PowerPlant may not attract developers who already have an investment in MacApp source code. But it easily fills the role of a basic object library that, like TCL, can get people accustomed to using frameworks without overwhelming them with a large interconnected group of objects, as does MacApp.
While CW is not radically new or different, it at least helps ease the anxiety caused by constantly being told to write native code and yet not being given any tools with which to do it. But, as our local press likes pointing out (all too frequently these days), "the devil is in the details". Metrowerks has put together a good early release of a fairly standard development environment. They have matched most of the features of Think C, and usually exceeded them, though not by much. Live scrolling and toolbars can only take you so far. If Symantec gets the bugs out of its environment by the time the 1.0 release of CodeWarrior hits the market we'll at least have a good horse race, and some much needed competition in the Mac tools business. Maybe then someone will finally try to match MPW's flexibility and superior control of the process of building complex applications. (Yes, that's right, I like MPW!).
I've been concerned that the introduction of the PowerPC would cause a decrease in the number of new development tools for the Mac. Old ones could become obsolete fairly quickly, but how fast would new ones appear to fill the gaps? Fortunately, a number of people are treating the PowerPC as a brand new opportunity (even if it is the same old Mac), and we may actually get a real Mac development tools market going this year. At last, more than two products in each category!
If you're in the D.C. area, and interested in object oriented programming, (or just want to give me grief about liking MPW) give SoFAWA a visit. We meet the third Wednesday of every month, beginning around 7:15 p.m. We presently alternate between a Georgetown and a Tyson's Corner location. For information on the next meeting, and directions, send a message to JEFFRIES.L on AppleLink, or call Leslie at (301) 340-5126 during business hours (EDT). If you leave her an e-mail address, she can place you on her e-mail list for SoFAWA meeting announcements.