18 July 2007

Remember OpenDoc?

I stumbled on this hysterical spoof of the "I'm a Mac and I'm a PC" ads a while ago and nearly wet myself laughing. Almost everyone has an obligatory Newton reference when recalling great Apple ideas that were a bit too far ahead of their times. I'll skip the Newton reference and just start in with OpenDoc.

First off, Apple even seems a wee bit bitter when referencing their ideas and tech that never went anywhere. This is the best you can get from them on OpenDoc:

Reference Library

Legacy Technologies

Legacy documents consist of guides, references, sample code, and other resources that have become irrelevant for current product development. Some of these documents describe features, functions, classes, or methods that are no longer supported. Other legacy documents describe currently supported technologies, but the approaches and development techniques described in these documents are no longer recommended.

. . .

OpenDoc is a cross-platform technology that replaces conventional applications with user-assembled groups of software components. OpenDoc allows users to create virtually any kind of custom software solution. OpenDoc is not supported in Carbon.

OpenDoc met its end in a stand-off with Java that never really was a stand-off; they were complementary in the sense that you could develop OpenDoc objects in Java or what every language you preferred (Think C/C++ anyone?). Apple was having a bad day (OK, a series of years) financially, Java was the sweetheart of the internet du jour (second only to Helen) and Microsoft was first to market with OLE (object linking and embedding).

The true beauty of OpenDoc, IMO, was the ability to embed arbitrary objects into arbitrary "containers" as well as extending the container objects. Abstraction, encapsulation, inheritance, and polymorphism; traditional object-oriented topics, implemented well ahead of their time, as far as data formats are concerned.

The Palm Pilot (and its derivatives) was to the Newton as XML (and its extenstions) was to OpenDoc.

1 comment:

tgreen said...

Nice post about OpenDoc. I have fond memories about it as well. I'm not sure that OpenDoc and XML are really equivalent. OpenDoc is a software framework whereas XML is a file format. I think it's possible to create OpenDoc-like components in Java.

See http://verdantium.blogspot.com/