MacApp and Prograph
Volume Number: 11
Issue Number: 5
Column Tag: Visual Programming
MacApp and Prograph CPX - A Comparison 
By Kurt Schmucker, Advanced Technology Group, Apple Computer, Inc.
Note: Source code files accompanying article are located on MacTech CD-ROM orsource code disks.
Designing and implementing an event-driven application with a sophisticated graphical
user interface is a difficult task. Fortunately, a number of years ago Larry Tesler and
other researchers at Apple came up with a way of making both the design and the
implementation of a Macintosh application considerably easier. What they did was to
design a working skeleton application that you could easily customize. Unlike earlier
skeleton apps, this new one did much more, was more easily extended, and yet required
you to learn much less about its inner workings. The main reason they were able to do
this was that they used an object oriented language and designed their skeleton as an
interlocking set of classes in that language. The resulting skeleton became known
generically as an application framework and resulted in an Apple product called
“MacApp - The Expandable Macintosh Application”. [1] Other application frameworks
from other companies followed: some were Macintosh application frameworks and
others were for other platforms. However, MacApp, as the first and the generally
most full featured, remains the standard against which all new application frameworks
are measured.
When CPX first came out, I embarked on a project to compare it to MacApp by
reimplementing some of the MacApp sample programs in CPX, seeing what could and
couldn’t be done, measuring RAM and disk footprints, measuring the performance of
the resulting apps, etc. I have gotten far enough on this project to do a fair
comparison, and this article will document what I have been able to do, and the
conclusions I have reached.
However, not everything in this article will be objective numerical data like
RAM footprint measurements. Developers are emotional about their tools, and why
shouldn’t they be? You spend a great deal of time and effort learning to use a tool, and
once mastered, you rely heavily on that tool for your livelihood. I am no exception to
this. While I will present the factual data that I was able to generate in doing this
comparison, I will also add my own personal opinions and impressions about MacApp
and CPX. In addition, since it is difficult to isolate a tool from the environment it’s
used in, I will also compare the total development experience of MacApp and CPX,
including programming languages, build times, auxiliary development tools like direct
manipulation window layout editors, etc.
Characteristics of an Application Framework
A Macintosh application framework is a set of classes in some object-oriented language
designed in such a way that:
• it is a stand-alone, double-clickable, ‘vanilla’ Macintosh application. (Because
it is an app, it has a working menu bar, can open multiple windows each of which