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 Object Linking and Embedding (OLE).[1] As part of the AIM alliance between Apple, IBM, and Motorola, OpenDoc is one of Apple's earliest experiments with open standards and collaborative development methods with other companies—effectively starting an industry consortium. Active development was discontinued in March 1997.[2][3]
Developer(s) | Apple Inc. |
---|---|
Stable release | 1.2.1
/ March 1997 |
Operating system | Classic Mac OS, OS/2, Windows, AIX |
Type | Compound document framework |
The core idea of OpenDoc is to create small, reusable components, responsible for a specific task, such as text editing, bitmap editing, or browsing an FTP server. OpenDoc provides a framework in which these components can run together, and a document format for storing the data created by each component. These documents can then be opened on other machines, where the OpenDoc frameworks substitute suitable components for each part, even if they are from different vendors.[4] 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.[5]
At its inception, it was envisioned that OpenDoc would allow, for example, smaller, third-party developers to enter the then-competitive office suite software market, able to build one good editor instead of having to provide a complete suite.[6]
Early efforts
OpenDoc was initially created by Apple 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 establish a standardized document format, based conceptually on the Electronic Arts 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".
Competing visions
With OpenDoc entering the historic AIM alliance between Apple, IBM, and Motorola, Apple was also involved in Taligent during some of this period, which promised 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. In 1993, John Sculley called Project Amber (a codename for what would become OpenDoc) a path toward Taligent.[7][8] Taligent was considered the future of the Mac platform, 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.[9]
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, 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
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.
As part of the AIM alliance between Apple, IBM, and Motorola, OpenDoc is 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, testing, and debugging purposes.
Release
The OpenDoc subsystem was initially released on System 7.5,[10] and later on OS/2 Warp 4.
Products
After three years of development on OpenDoc itself, the first OpenDoc-based product release is 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.[9]
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.
A number of physics simulations were written by MetaMind Software and by Russian software firm Physicon (OpenTeach) as OpenDoc parts.[11] Physics curricula for high school and middle school used them as their focus. With the discontinuation of OpenDoc, the simulations were rewritten as Java applets and made available from the Center as The Constructing Physics Understanding (CPU) Project by Dr. Fred Goldberg.[12]
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.
Problems
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, which at the time was nearly 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.
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.
Cancellation
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.[2][3] Other sources noted that Microsoft hired away three ClarisWorks developers who were responsible for OpenDoc integration into ClarisWorks.[13]
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.[14] Apple officially relinquished the last trademark on the name "OpenDoc" on June 11, 2005.
See also
- Orphaned technology for similar fates
- KParts for an open source alternative
References
- 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.
- 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.
- 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.
- https://www.mackido.com/History/History_OLE.html
- "Computerworld". May 17, 1993.
- Gaudin, Sharon (July 29, 1996). "IBM ships first batch of OpenDoc components". Computerworld. p. 14. Retrieved July 17, 2019.
- Basal Gangster (April 17, 2020). "OpenDoc". The Long View. Retrieved June 24, 2020.
- 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. Archived from the original on May 9, 2008. Retrieved April 9, 2008.
- 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.
External links
- Overview of OpenDoc at the Wayback Machine (archived October 9, 2007)
- Club OpenDoc at IBM at the Wayback Machine (archived December 25, 1996)
- 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.