# OpenDoc

OpenDoc is a defunct multi-platform software componentry framework standard created by Apple in the 1990s for compound documents, intended as an alternative to Microsoft's proprietary Object Linking and Embedding (OLE). It is one of Apple's earliest experiments with open standards and collaborative development methods with other companies. OpenDoc development was transferred to the non-profit Component Integration Laboratories, Inc. (CI Labs), owned by a growing team of major corporate backers and effectively starting an industry consortium. In 1992, the AIM alliance was launched by Apple, IBM, and Motorola, with OpenDoc as a foundation. With the return of Steve Jobs to Apple, OpenDoc was discontinued in March 1997.

## Overview

The core idea of OpenDoc is to create small, reusable components which are responsible for a specific task, such as text editing, bitmap editing, or browsing an FTP server. OpenDoc is a framework in which these components can run together, and a compound document format for storing the data created by each component. These documents can then be opened on different networked machines of different operating systems, on which the OpenDoc frameworks can substitute suitable components for each part, even if they are from different vendors. In this way, users can "build up" their documents from parts. Since there is no main application and the only visible interface is the document itself, the system is known as document-centered.
OpenDoc was conceived to allow, for example, smaller, third-party developers to enter the competitive office suite software market, and build small, specialized applications instead of having to provide a complete suite. It was envisioned to facilitate a new future of online app stores.

## History
### Background

Microsoft approached Apple asking for input on a proposed OLE II project. Apple had been experimenting internally with software components for some time, based on the initial work done on its Publish and Subscribe linking model and the AppleScript scripting language, which in turn was based on the HyperCard programming environment. Apple reviewed the Microsoft prototype and document, and returned a list of problems with the design. Microsoft and Apple were very competitive, were unable to agree on common goals, and did not work together.
At about the same time, a group of third-party developers had met at the Apple Worldwide Developers Conference (WWDC '91) and tried to establish a standardized document format, based conceptually on the Interchange File Format (IFF) from Electronic Arts. Apple became interested in this work, and soon dedicated some engineers to building and documenting such a system. Initial work was published on the WWDC CDs, and several follow-up versions on later developer CDs. A component document system would only work with a known document format that all the components could use, and so soon the standardized document format was pulled into the component software effort. The format quickly changed from a simple one using tags to a very complex object oriented persistence layer called Bento.
Initially the effort was codenamed "Exemplar", then "Jedi", "Amber", and eventually "OpenDoc".

### Competing visions

In March 1992, the AIM alliance between Apple, IBM, and Motorola, was launched with OpenDoc as a foundation. Taligent was formed as a primary objective of AIM, adopted OpenDoc, and promised somewhat similar functionality although based on very different underlying mechanisms. OpenDoc progressed, but Apple greatly confused developers by suggesting that it should be used only for porting existing software, but new projects should instead be based on Taligent as the presumptive future OS for Macintosh. In 1993, John Sculley called Project Amber (a codename for what would become OpenDoc) a path toward Taligent. Taligent was considered the future of the Macintosh, and work on other tools like MacApp was considerably deprioritized.
Through OpenDoc's entire lifespan, analysts and users each reportedly "had very different views" of the OpenDoc initiative. They were confused about their role, regarding how much of OpenDoc-based development would be their responsibility versus IBM's and Apple's responsibility. There were never many released OpenDoc components compared to Microsoft's ActiveX components. Therefore, reception was very mixed.
Starting in 1992, Apple attempted to replace MacApp development framework with a cross-platform solution called Bedrock, from Symantec. Symantec's Think C was rapidly becoming the tool of choice for development on the Mac. While collaborating to port Symantec's tools to the PowerPC, Apple learned of Symantec's internal porting tools. Apple proposed merging existing MacApp concepts and code with Symantec's to produce an advanced cross-platform system. Bedrock began to compete with OpenDoc as the solution for future development.
As OpenDoc gained currency within Apple, the company started to push Symantec into including OpenDoc functionality in Bedrock. Symantec was uninterested in this, and eventually gave up on the effort, passing the code to Apple. Bedrock was in a very early state of development at this point, even after 18 months of work, as the development team at Symantec suffered continual turnover. Apple proposed that the code would be used for OpenDoc programming, but nothing was ever heard of this again, and Bedrock disappeared.
As a result of Taligent and Bedrock both being Apple's officially promised future platforms, little effort had been expended on updating MacApp. Because Bedrock was discontinued in 1993 and Taligent was discontinued in 1996 without any MacOS release, this left Apple with only OpenDoc as a modern OO-based programming system.

### Partnerships and adoption

The development team realized in mid-1992 that an industry coalition was needed to promote the system, and created the Component Integration Laboratories (CI Labs) with IBM and WordPerfect. IBM introduced to OpenDoc, its already mature System Object Model (SOM) and Distributed SOM (DSOM) shared library systems from AIX and OS/2. DSOM allows live networked linking of data between different platforms, which OLE and COM did not have. SOM became a major part of Apple's future efforts, in and out of OpenDoc.
In March 1995, many OpenDoc announcements came. CI Labs ownership included Apple, IBM, Novell, and SunSoft. IBM pre-announced at Object World Boston the future release of the OpenDoc OS/2 Developer Toolkit version 2, containing the complete API, and then the final release of OpenDoc 1.0 for OS/2 3.0. Taligent's CommonPoint application framework has compound document features based on OpenDoc. Novell announced at the Brainshare conference, a plan to break up most or all of its products into OpenDoc components, beginning with WordPerfect applications and then its NetWare operating system. NetWare was intended to become a managed Compound Document Service for networks, to manage object links and compound document searching. Novell announced a plan for OpenDoc to become the basis for building UnixWare applications. It acknowledged that its operating systems lack a component architecture, and that Microsoft would never license the source code for OLE or COM, so Novell needs to support those also via OpenDoc. More than 20 more companies announced their products' support for OpenDoc, citing its technological superiority to Microsoft's OLE and COM, and its wide cross-platform support.
In 1996, OpenDoc was adopted by the Object Management Group, in part due to SOM's use of Common Object Request Broker Architecture (CORBA), maintained by the OMG.
CI Labs never publicly released the source code, but licensed it to developers for feedback, testing, and debugging.

### Release

In September 1994, the OpenDoc subsystem was launched on System 7.5, and later on OS/2 Warp 4.

### Products

After three years of development on OpenDoc itself, the first OpenDoc-based product release was Apple's CyberDog web browser in May 1996. The second was on August 1, 1996, of IBM's two packages of OpenDoc components for OS/2, available on the Club OpenDoc website for a 30 day free trial: the Person Pak is "components aimed at organizing names, addresses, and other personal information", for use with personal information management (PIM) applications, at $229; and the Table Pak "to store rows and columns in a database file" at $269. IBM then anticipated the release of 50 more components by the end of 1996.
The WAV word processor is a semi-successful OpenDoc word processor from Digital Harbor LLC. The Numbers & Charts package is a spreadsheet and 3D real-time charting solution from Adrenaline Software. Lexi from Soft-Linc, Inc. is a linguistic package containing a spell checker, thesaurus, and a simple translation tool which WAV and other components use. The Nisus Writer software by Nisus incorporated OpenDoc, but its implementation was hopelessly buggy. Bare Bones Software tested the market by making its BBEdit Lite freeware text editor available as an OpenDoc editor component. RagTime, a completely integrated office package with spreadsheet, publishing, and image editing was ported to OpenDoc shortly before OpenDoc was cancelled. Apple's 1996 release of ClarisWorks 5.0 (the predecessor of AppleWorks) was planned to support OpenDoc components, but this was dropped.

#### Educational

Another OpenDoc container application, called Dock'Em, was written by MetaMind Software under a grant from the National Science Foundation and commissioned by The Center for Research in Math and Science Education, headquartered at San Diego State University. The goal was to allow multimedia content to be included in documents describing curriculum.
Several physics simulations were written by MetaMind Software and by Russian software firm Physicon (OpenTeach) as OpenDoc parts. Physics curricula for high school and middle school focused on them. With the discontinuation of OpenDoc, the simulations were rewritten as Java applets and published from the Center as The Constructing Physics Understanding (CPU) Project by Dr. Fred Goldberg.
Components of the E-Slate educational microworlds platform were originally implemented as OpenDoc parts in C++ on both MacOS and Windows, reimplemented later (after the discontinuation of OpenDoc) as Java applets and eventually as JavaBeans.

### Cancellation

OpenDoc had several hundred developers signed up. Apple was rapidly losing money at the time and many in the industry expected the company to fail.
In March 1997, OpenDoc was discontinued with the return of Steve Jobs to Apple, who had been at NeXT during its development. He said Apple's management "put a bullet through [OpenDoc's] head", and most of the Apple Advanced Technology Group was laid off in a big reduction in force. Other sources noted that Microsoft hired away three ClarisWorks developers who were responsible for OpenDoc integration into ClarisWorks.
Since Mac OS 8.5, OpenDoc was no longer bundled. AppleShare IP Manager from versions 5.0 to 6.2 relied on OpenDoc, but AppleShare IP 6.3 eliminated this, as the first Mac OS 9 compatible version, released in 1999. Apple officially relinquished the last trademark on the name "OpenDoc" on June 11, 2005.