Mac App

MacApp was the first widely available ObjectOriented application framework. It was written in ObjectPascal, a proprietary extension of the PascalLanguage, and ran on the Macintosh. In addition to being an application framework, it was a largely successful effort to demonstrate how to write an elegant, robust Macintosh application. Apple ported MacApp to CeePlusPlus for version 3.0.

Brown University (IRIS) ported MacApp to "Object C", a proprietary extension to CeeLanguage, where it provided the infrastructure to Intermedia, a multimedia hypertext used by scholars for research and course work. Given that this Object C is not the THINK/Symantec dialect and is not NeXT's ObjectiveCee, what is it? A language? Or well-structured C? Please enlighten.

Early versions of MacApp encouraged several AntiPatterns such as inheriting from container classes. (MacApp often uses is-a where it should use has-a relationships.)

The Lisa Toolkit (AppleLisa?) included an application framework written in Clascal (Pascal with OO extensions). Clascal evolved into "ObjectPascal". Mac Pascal and Lightspeed/THINK/Symantec Pascal could compile Object Pascal. Borland implemented and expanded upon this dialect in its TurboPascal series.

MacApp is being kept alive by a dedicated group of developers who have maintained and enhanced the framework since Apple stopped supporting it in 2001. MacApp has been updated to fully support Carbon Events, Universal Binaries, Unicode Text, MLTE control, DataBrowser? control, FSRefs, XML parsing, Custom Controls, Composite Window, Drawer Window, HIView Window and Custom Windows. MacApp also has C++ wrapper classes for HIObject and HIView.

At WWDC 2005, it took a single developer 48 hours to update MacApp and the MacApp example apps to support Universal Binaries.

Apple's page bears the bad news that as of October 2, 2001 it will do no further development or maintenance of the code base.

A volunteer community headed by the former Apple tech lead continues to maintain MacApp.

I "accidentally" made a link to this WikiName in InexperienceGeneratesFailure. I would not have created this page but given that it's here, can the WikiSharedMemory? help with the following questions:

-- RichardDrake

Many design patterns documented in the DesignPatterns book were used in MacApp.

A concise statement of the truth.

Same goes for Metrowerks PowerPlant.

An interesting bit of trivia is that Adobe PhotoShop was originally written in MacApp/ObjectPascal. Here is an article about its development: and details how AdobeSystemsInc ported it to MicrosoftWindows.
Whether this is another case of trivia, or interesting historic information, I don't know. But back in 1991 or 1992 a friend handed me a photocopy of an article, which I believe was authored by a group of MacApp developers, possibly including Larry Tesler and Larry Rosenstein, discussing the extension of ObjectPascal to include many C++ features in a more "Pascal-like" manner, as a language called Pascal '9x. I have only been able to find two slight references to this proposal, both in issue 5, volume 2 (april 1991) of FrameWork Magazine, now archived at MacTech? Magazine ( One of the links talks about Derick White's several examples from his presentation "Report on Pascal '9x." , the other is a parenthetical remark (Compare this to Object Pascal; it has no such data hiding syntax, at least not until '9x comes around, so everyone has access to everything about the class.) I still have the photocopy somewhere, but I wonder if it may be available anywhere on the web? -- LasseHp


View edit of November 12, 2009 or FindPage with title or text search