March 94 - SoFAWA Notes
SoFAWA Notes
John MacVeigh
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.