This is the first of a series of a speculative posts written while wearing my XO Thinking Cap.
Today’s topic is Microsoft’s proposed standard for “open document” formats, Office Open XML (OOXML).
OOXML is competing for the world’s attention and support with the open document standard favored by we open-source folks, Open Document Format (ODF).
This is a complicated topic, but to keep things simple here are some of the key points as I see it.
Microsoft is mainly a software company. It derives most of its profits from two related pieces of software:
- The Windows operating system, the most widely-used operating system in the world today;
- The Microsoft Office suite of applications, including the Word document processor, the PowerPoint presentation software, and so forth.
These are the crown-jewels of Microsoft’s empire, and the primary source of the vast riches, what I call “oodles of boodle,” that have been accumulated by the founders and employees.
The people who run Microsoft are very, very smart. For the most part they have been able to grow their business by fending off other companies in two ways: by acquiring them, or by developing their own alternative solution, and then embedding it in the Windows operating system, whose cost is a hidden tax that is part of the cost of buying a desktop or laptop. A good example of this is Microsoft’ response to Netscape’s browser by creating Internet Explorer and making it part of Windows.
However, the last few years have seen the emergence of a technology created not by a single company, or even a few companies, but by a globally-distributed team of software developers who have created a vast amount of “free and open-source software” that is available at no cost.
Yes, no cost. Nada; Zip; Zero; arguments about Total Cost of Ownership (TCO) notwithstanding.
Open-source software is thus Microsoft’s strategic threat. They know it. We open-source developers know it. This is not a matter of dispute.
The primary threat to Windows is of course Linux. Microsoft’s first response was to claim that open-source was a “cancer.” Next came “Get the Facts,” a campaign based largely on Total Cost of Ownership (TCO) arguments. See TOC: Total Ownership Of Cost, the Cost of Microsoft Software.
Microsoft’s response has become much more nuanced. For example, Microsoft has recently engaged in some modest open-source activities.
Microsoft’s Office business is as extraordinary in its simplicity as it is profitable:
- Require that you, as the the author of a document use a copy of Office, either purchased directly or by your employer, to prepare a document.
- Send that document, one containing your original work, to a colleague, or publish it on the web;
- Require that you, as a reader of such a document, must also use a copy of Office, either purchased directly or by your employer, to access the document.
It doesn’t get much better than this. One document, two paid-for copies of Office: one for the author, the other for the reader!
This money machine can only operate if Microsoft can maintain control over the the formats in which the documents are prepared and distributed. These formats must be kept proprietary. Were the format to be a public, open standard, then others could enter the game and offer their own Office suite.
The open-source alternative to Microsoft Office is OpenOffice.org (OO.o or OOo). This software was originally written by a German company that was acquired a few years back by Sun Microsystems, which at first offered it as a commercial product, StarOffice, and then later released the code in open-source form.
OO.o has become the standard open-source suite for office documents, and is thus the chief challenger to Microsoft’s Office hegemony.
The growing use of OO.o has forced Microsoft to respond. The underlying standard for OO.o document format, ODF, is based on XML. Microsoft has proposed its own so-called open-standard in the form of another XML-based proposal, OOXML.
Microsoft has recently attempted to make OOXML an approved, accepted open standard. Though the initial efforts have suffered a major setback, the work continues.
So far the “battle” between ODF and OOXML has been waged as a battle of platforms: OOXML on Windows, ODF on Linux. Common to both has been the assumption that the underlying hardware is the same: commodity boxes using Intel architecture, either desktops or laptops.
My own view — from underneath my XO Thinking Cap — is that the game has changed, with the XO Laptop being the game changer.
Another key point to understand before proceeding further is the major difference between the two standards. While both are based on XML, one is bigger, much bigger, than the other:
- The ODF standard is about five hundred pages in size;
- The OOXML standard is at least ten times larger, currently weighing in at over six thousand pages!
A few weeks back I spent some time examining both standards. It is hard, very hard, to get any sense of what to make of a standard that runs over six thousand pages in length. My own sense, based on a cursory examination of both, is that they differ as follows.
ODF is a straightforward effort to describe the XML representation of office-style documents. It is well organized, and makes repeated use of a few core constructs. Though it does take several hundred pages to describe, it’s pretty clear as you read the document why this is so. It just takes that long to elaborate the core design at the necessary level of detail so that a potential iimplementor could do a new implementation solely by reading the standard.
OOXML, on the other hand, is basically a memory dump, of all the features that have been added to Office over the last decade. One such feature that I can recall as I write this is “draw diagonal red line through box.” Now that might have seemed a neat feature to the programmer who put in in a few years back, but it now an albatross around Microsoft’s neck, as that odd construct must be precisely defined and then implemented, to maintain compatibility with the millions and millions of Office documents out there, even though at most a tiny fraction (any?) have ever made use of this feature.
As best as I can tell, the process of constructing the OOXML standard was something like this:
- Identify each feature that has been added over the last decade or so;
- For each such feature, give a brief description, describing it in a way that comprises part of the API (Application Programming Interface) that an implementor would need to use. That is, describe the arguments and formats of the code that would need to be written to deal with the construct, without going into the details of how that code would work.
- Add a supporting “example” that, on close examination, will almost always be found to provide no meaningful help to potential implementors. (This fills up the standard and makes it looks good, as long as no one examines it closely.)
- Overwhelm potential reviewers with a vast mass of miscellaneous information, some of it misleading, and hope they will give up and approve it.
Why is the XO laptop a game-changer?
The XO is NOT a PC “clone.” It is a special device meant to use open-source software. It has minimal hardware requirements.
Go read the minimal requirements for XO-Linux and Vista Basic, as described in my post terraputer xo-laptop: Minimal hardware requirements for XO-Linux and Microsoft Vista.
The XO has a 400+ Mhz processor, 512 MB of main memory, and 1GB of “disk space,” in the form of a flash drive. In particular, the XO has no moving parts, which means there is no hard disk waiting to be spun up and filled with the gigabytes of code that comprise Vista and Office.
Ask yourself the following question:
What are the odds of Microsoft implementing the full OOXML standard using only 512MB of dynamic memory in a 1GB disk that must also contain the operating system and all the other key XO applications?
Here is my guess:
Nada. Zip. Zero. It ain’t gonna happen.
This then suggests the following approach to encourage the wider use of the ODF format and the hopefully shrinking use of OOXML going forward:
- Subject the OOXML proposal to rigorous review, requiring that any ambiguities be clarified, and meaningful examples provided. This should take months, if not years. Hopefully the standard will grow in size; let’s aim for ten thousand pages. Let the Gnome Foundation lead this effort.
- Meanwhile, some of us will be working to get the XO deployed, and also to improve its software. If we do a good job, some of the 1GB of the XO’s “disk” will be dedicated to that newcode, leaving less room for Office to run.
- As the standard process nears completion, suggest to Microsoft that they should produce a reference implementation that can be run on the XO Laptop, showing it is ready to use not only in the office, but in the world’s schools as well.
Then sit back, take off your XO Thinking Cap, and savor the moment, as they get to work on implementing that sucker.