July 92 - Software Review - Component Workshop and OODLs
Software Review - Component Workshop and OODLs
Jeff Alger
This year's WWDC was by most accounts pretty shy of substance. Last year we had
System 7 (at last) and QuickTime, for example, while this year we were told that
AppleScript would go beta sometime in the fall; a cross-platform MacApp strategy
would be announced a month later at PC Expo; sometime in 1993 QuickDraw GX would
hit the streets, sometime; somewhere Taligent will need us . . . in short, lots of
promises but not much delivered. It was against this backdrop that BAMADA held its
monthly meeting on Thursday night of that week. Despite holding the meeting off-site
in Cupertino, rather than in San Jose near the convention, the auditorium was packed
to overflowing, and it is a good bet that almost everyone there came to hear Steve Weyl
expand on Apple's cross-platform strategy or Larry Tesler talk about Dylan, Apple's
new object-oriented dynamic language (OODL). Also on the program were two tiny
companies, Component Software demonstrating their Component Workshop
development environment and Nick Nallick demonstrating his view editor, Ad Lib.
Sandwiched in between the heavyweights, the little guys stole the show. Looking around
after Component Software's presentation, it was clear to me that only a vague sense of
protocol prevented a standing ovation. This, from a company that has yet to ship a
product and has only nine employees.
This article was prompted by the audience response to Component Workshop and, more
generally, the sudden upsurge of interest in OODLs following Larry Tesler's keynote
talk at the MADA conference in February. In the next issue of FrameWorks I will
provide an in-depth review of the tools and class library of Component Workshop. This
article is devoted to the particular implementation of C++ in Component Workshop and
even more to the issues and position of this kind of tool in the world of OODLs.
What's An OODL?
Despite its C++ syntax, Component Workshop is best classified as what Tesler has
coined an "object-oriented dynamic language," or OODL. It belongs in the same class as
Smalltalk and CLOS, environments in which it is all but impossible during
development to separate the idea of running your application from the development
environment itself. Add a class? Just a few clicks and keystrokes and it is ready to use.
Add a method? Type in the source and a couple of seconds later it is compiled and
linked. Change something? Again, the only real time taken is in typing the source. And
without a Quadra with 64M of RAM disk; all of the modern OODLs work just fine on
much smaller, IIci-class machines.
It is easy to get swept away at this point and equate OODLs to faster compiling and
linking. That is certainly attractive and probably in itself explains much of the