|This article needs additional citations for verification. (June 2013)|
|Stable release||1.2.1 / 1997|
|Operating system||Mac OS, OS/2, Windows, AIX|
|Type||compound document framework|
The basic idea of OpenDoc was to create small, reusable components, responsible for a specific task, such as text editing, bitmap editing or browsing an FTP server. OpenDoc provided a framework in which these components could run together, and a document format for storing the data created by each component. These documents could then be opened on other machines, where the OpenDoc frameworks would substitute suitable components for each part, even if they were from different vendors. In this way users could "build up" their documents from parts. Since there was no main application and the only visible interface was the document itself, the system was known as document centered.
It was envisioned that OpenDoc would allow smaller, third-party developers to enter the office software market, able to build one good editor instead of having to provide a complete suite.
OpenDoc was initially created by Apple Computer in 1992 after Microsoft approached Apple asking for input on a proposed OLE II project. Apple had been experimenting with software components internally 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 they saw with the design. Microsoft and Apple, who were very competitive at the time, 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 hammer out a standardized document format, based conceptually on the Amiga's Interchange File Format (IFF). Apple became interested in this work, and soon dedicated some engineers to the task of building, or at least documenting, such a system. Initial work was published on the WWDC CDs, as well as a number of 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".
Apple was also involved in the Taligent project during some of this period, which offered somewhat similar functionality although based on very different underlying mechanisms. While OpenDoc was still being developed, Apple confused things greatly by suggesting that it should be used by people porting existing software only, and new projects should instead be based on Taligent since that would be the next OS. Taligent was considered the future of the Mac platform, and work on other tools like MacApp were considerably deprioritized. When Taligent died in 1995, Apple was left with no major ongoing efforts along these lines, and OpenDoc became the future of Mac development.
Starting in 1992, Apple had also been involved in an effort to replace MacApp development framework with a cross-platform solution known as Bedrock, from Symantec. Symantec's Think C was rapidly becoming the tool of choice for development on the Mac. Apple had been working with them to port their tools to the PowerPC when they 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, in spite of 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 the "next big thing", little effort had been expended on updating MacApp. As these two projects died, this left Apple with only OpenDoc as a modern OO-based programming system.
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 the System Object Model (SOM) shared library system to the project, which became a major part of Apple's future efforts, in and out of OpenDoc. In 1996 the project 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.
OpenDoc was one of Apple's earliest experiments with open standards and collaborative development methods with other companies. Apple and its partners never publicly released the source code, but did make the complete source available to developers for feedback and for testing and debugging purposes.
Products implementing OpenDoc
The WAV word processor was a semi-successful OpenDoc word processor from Digital Harbor, the Numbers & Charts package was a spreadsheet and 3D real-time charting solution from Adrenaline Software, the Cyberdog web browser was created by Apple as an OpenDoc application. Lexi from Soft-Linc, Inc. was a linguistic package containing a spell checker, thesaurus and a simple translation tool which WAV and other components used. The Nisus Writer software by Nisus incorporated OpenDoc, but its implementation was hopelessly buggy. Bare Bones Software tested the waters 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.
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.
A number of 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 used them as their focus. With the demise of OpenDoc, the simulations were rewritten as Java applets and are still available from the Center under the title of "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 on (after the demise of OpenDoc) as Java applets and eventually as JavaBeans.
||This article possibly contains original research. (October 2015)|
OpenDoc's flexibility came at a cost. OpenDoc components were invariably large and slow. For instance, opening a simple text editor part would often require 2 megabytes of RAM or more, whereas the same editor written as a standalone application could be as small as 32 KB. This initial overhead became less important as the number of documents open increased, since the basic cost was for shared libraries which implemented the system, but it was large compared to entry level machines of the day. Many developers felt that the extra overhead was too large, and since the operating system did not include OpenDoc capability, the memory footprint of their OpenDoc based applications appeared unacceptably large. In absolute terms, the one-time library overhead was approximately 1 megabyte of RAM, at the time half of a low-end desktop computer's entire RAM complement.
Another issue was that OpenDoc had little in common with most "real world" document formats, and so OpenDoc documents could really only be used by other OpenDoc machines. Although one would expect some effort to allow the system to export to other formats, this was often impractical because each component held its own data. For instance, it took significant effort for the system to be able to turn a text file with some pictures into a Microsoft Word document, both because the text editor had no idea what was in the embedded objects, and because the proprietary Microsoft format was undocumented and required reverse engineering.
Another problem was the fact that each part saved its data within Bento (the former name of an OpenDoc compound document file format) in its own internal binary format, and it was very common to find one component could not open a document created by another, even though the internal data represented similar objects (spreadsheet data for instance). OpenDoc attempted to solve this problem by allowing developers to store multiple formats to represent the same document object. For instance, it was both possible and encouraged to store a common format like JPEG along with editable binary format, but in practice few developers followed this recommendation. This problem was not unique to OpenDoc, and in fact was also experienced by the Microsoft equivalent, Object Linking and Embedding (OLE). Indeed, many years later, XML documents which attempt to perform embedding of other XML formats also encounter similar issues.
It also appears that OpenDoc was a victim of an oversold concept, that of compound documents. Only a few specific examples are common, for instance most word processors and page layout programs include the ability to include graphics, and spreadsheets are expected to handle charts.
But certainly the biggest problem with the project was that it was part of a very acrimonious competition between OpenDoc consortium members and Microsoft. The members of the OpenDoc alliance were all trying to obtain traction in a market rapidly being dominated by Microsoft Office. As the various partners all piled in their own pet technologies in hopes of making it an industry standard, OpenDoc grew increasingly unwieldy. At the same time, Microsoft used the synergy between the OS and applications divisions of the company to make it effectively mandatory that developers adopt the competing OLE technology. In order to obtain a Windows 95 compliance logo from Microsoft, one had to meet certain interoperability tests which were quite difficult to meet without adoption of OLE technology, even though the technology was largely only useful in integrating with Microsoft Office. OpenDoc was forced to create an interoperability layer in order to allow developers to even consider adoption, and this added a great technical burden to the project.
OpenDoc had several hundred developers signed up but the timing was poor. Apple was rapidly losing money at the time and many in the industry press expected the company to fail.
OpenDoc was soon discontinued, with Steve Jobs (who had been at NeXT during this development) noting that they "put a bullet through [OpenDoc's] head", and most of the Apple Advanced Technology Group was laid off in a big reduction in force in March 1997. Other sources noted that Microsoft hired away three ClarisWorks developers who were responsible for OpenDoc integration into ClarisWorks.
AppleShare IP Manager from versions 5.0 to 6.2 relied on OpenDoc, but AppleShare IP 6.3, the first Mac OS 9 compatible version (released in 1999), eliminated the reliance on OpenDoc. Apple officially relinquished the last trademark on the name OpenDoc on June 11, 2005.
Exists project of open-source OpenDoc implementation which is re-write from scratch of the OpenDoc framework.
- Amy D. Wohl (June 1993). "Apple and WordPerfect Announce OpenDoc". Amy D. Wohl' Opinions. Archived from the original on November 9, 2006. Retrieved April 24, 2007.
- Piersol, Kurt (March 1994). "A Close-Up of OpenDoc". Byte.com. Retrieved April 24, 2007.
- Greg Maletic (November 12, 2006). "OpenDoc". Greg Maletic’s Blog. Retrieved April 24, 2007.
- "Macintosh vs Windows 95" (PDF).
Application developers will be able to focus on writing small programs that do specific things, rather than creating entire suites. This will make it much easier for small, innovative software companies to get back in the industry....OpenDoc applications will be sold the way applications are sold today, and through the same channels. But as with any new technology, additional channels will evolve to capitalize on the technology’s strengths. It is likely that over time on-line component warehouses will be used to distribute some OpenDoc applications. Interesting new on-line applications and services will be enabled by OpenDoc.
- Arni McKinley (December 19, 2006). "OpenDoc - Comment by Arni McKinley". Greg Maletic’s Blog. Retrieved April 8, 2008.
- The CPU Project (February 2001). "Constructing Physics Understanding". San Diego State University. Retrieved April 9, 2008.
- Dawn Kawamoto; Anthony Lazarus (March 14, 1997). "Apple lays off thousands". CNET News.com. Retrieved April 24, 2007.
- Erick Schonfeld (October 6, 2011). "Jobs:Focus Is About Saying, No". TechCrunch.com. Retrieved October 6, 2011.
- Bob Hearn (2003). "A Brief History of ClarisWorks : Oregon". Bob Hearn's website. Retrieved April 24, 2007.
- Apple (December 18, 2003). "AppleShare IP 6.3 Does Not Require OpenDoc". Apple Support. Retrieved April 24, 2007.
- Overview of OpenDoc (archived version)
- Last release of OpenDoc with mostly all sources (for education purpose only)
- Video of Steve Jobs at Apple's annual developer conference in 1997, defending Apple's decision to kill OpenDoc.
- docshell an open-source OpenDoc implementation