What is the use for ODF?

This post is a reaction to xErath's comment to an earlier rambling.

Originally posted by xErath:

There's enough info online about the deficiencies of ooxml. I don't need to quote them here.

Just to have it over with, we agree. I may be a Microsoft groupie at heart, but I don't have time for OOXML. People who want to discuss OOXML should feel free to do so, elsewhere. More interesting is this part:

HTML5 is a big patch over HTML4, made to be backwards compatible with the complete mess that is the web.

ODF on the other hand is a clean approach to define an abstract model of document formats. Then ODF has many features that html5 will never have nor will make any sense. I doubt html5 will ever include native spreadsheets support, slide transitions, page footers and headers… you name it. ODF will not support local databases nor globalStorage.

First, I have come to realise that the phrase "it is a complete mess" is a shorthand for "it works very well, and I don't think it should". In fact the Web is a remarkably sane place. We have millions of monkeys making Web code every day, and it works. The Web is more like an ecosystem than an engine, you don't stop and "repair" it, it is survival of the fittest. If you look at Web code written today and ten years ago the old code was worse and still achieved less. The Web has evolved and it keeps evolving. …

There has repeatedly been a clamour to replace the "complete mess" of the Web with something pure. Apart from that this would be the most absurd case of complete rewrite I could think of, the replacement loses its purity when it leaves the lab, if not sooner.

We have had this with SVG, many of the original designers wanted something clean, and while Adobe wanted something to fight Flash, others looked at disdain at the Web. Now SVG is growing webbed feet, and it is by getting dirty that SVG is becoming fun and useful, and above all used. It will be a slow and noisy process, pieces of SVG don't fit well with with the rest of the Web, eventually the areas of friction will be worn down. The decade after 1995 was largely occupied with undoing Netscape. The same way I suspect will spend the decade after 2005 undoing the "purity of essence" attitude SVG in part had. This is not to say that it was all wrong, a second opinion can be healthy, just that from the point of view of someone wanting to integrate the technologies it can be seen as unneeded aggravation.

I may be biased here, having founded a Web Appreciation Society, but the Web deserves some appreciation. Not adulation by any means, every part should be critically examined to see if it can be done better.

So what is OpenDocument Format good for?

Now to the main dish, the OpenDocument format (ODF). I am honestly curious, what makes you say "ODF on the other hand is a clean approach to define an abstract model of document formats"? Is it because it is not-OOXML or do you see some inherent jewels in the format I can't see?

What is likeable about ODF is that it has a fairly straight-forward serialization. If browser vendors wanted they could be ODF viewers in a few months. If done as an external extension or anything else not needing as much time-consuming QA it could be done even quicker. Then it would take much longer time for the browsers to make viewers that would actually be usable, but even the early versions would give ODF an advantage, like the Google "view as HTML" link for binary formats. There is a huge number of PDF viewers, Adobe Acrobat and others, but it is still dwarfed by the number of browsers. The number of ODF-capable programs today is very small in comparison. Long before there would be any consistent native support, XSLT transformation sheets would convert to enhanced HTML (I wouldn't be surprised if that means enhanced for IE and Firefox, but not Opera and the others).

The big advantage is political. ODF will free millions of office documents from their binary bondage and eventually free the millions of office document producers as well.

The messy OpenDocument format

HTML5 is a big patch over HTML4, made to be backwards compatible with the complete mess that is the web.

HTML5 is big allright, but it isn't a patch, more a map of where we are right now and where we want to be in five years or so when it is done. It looks at how the Web is used, and gives new tools for performing those tasks more efficiently.

What really is outdatedly backwards compatible is the office suite. The Web has 15 years of backwards compatibility, while the office suite has 25, including a major change in how documents are viewed and used, while the Web was that major change. ODF, like Open Office, suffers from a lack of imagination. The workflow in Microsoft Office, which Open Office faithfully clones, has been and still is based on the printed paper being the end result. PowerPoint is different, and arguably worse.

An office program didn't really save the document, but the program state, including the content of the document. That was logical because who cared about the document file, the end goal was after all to get the content to the printer (or the projector screen). As a consequence the file formats in MS Office were an unholy mess, a liability Microsoft has slowly tried to extract itself from. This binary mix of program state and content may have given them the important business advantage of preventing competitors from reverse engineer the format, but also caused Microsoft great pain when engineering it in the first place.

HTML, SVG, DocBook and many similar formats describe the document, not whatever the editing program was thinking about when making it. If you look at an ODF document it is full of editor state and formatting codes. That isn't so bad, ODF is quite reasonable. It doesn't have the elegance of an HTML document but it is still possible to read and understand. And a mingling of minds may be needed. A fair criticism against the Web standards is that they have not truly been made with editors in mind. The vast majority of documents are written by human beings, and humans don't read or write code. It is very hard to make a WYSIWYQ editor that makes elegant code, and with ODF they are not really trying.

It is amusing to read the ODF spec, the office mentality is shining through in every design decision. It is like reading the autobiography of a word processor. But if we are to make a Web document format we need some form of What You See Expresses What You Mean. HTML5 isn't quite there. I believe it was Anne (not working at Opera at the time) who coined HTML5, we called it Web Forms and then Web Applications, but when I saw "HTML5" the first time I looked forward to HTML6, which I wanted, want, to be the document format. For me going by Web applications is just a necessary detour.

Web apps, what web apps?

ODF and HTML5 are completely different thing. HTML5 is being developed for web application. ODF for (somewhat) static documents.

I don't care about web applications. It is understandable why browser makers spend so much energy on them. Essentially they make standalone programs, like ultimately Open Office and Microsoft Office, obsolete. Like with web pages replacing standalone documents it isn't the browsers that obsolete standalone applications. The future doesn't belong to Open Office, it belongs to Son-of-Google-Apps. Applications still matter for browser makers, in part it's an arms race where they can't be let behind, and in part it opens up for new opportunities. For Opera the idea of having web apps on phones is very appealing.

Me, I don't think the browser companies will get a reasonable return on investment from this, it will be the sons-of-Google that will profit, the browsers will just make it easier for them to profit. It also shifts the power from the operating systems, as web apps work on any OS supported by the browsers, while standalone need to be compiled for each specific OS. The browsers may be more responsible for the declining fortune of Microsoft Windows than anything else, and Microsoft Office is next. The war Netscape declared against Microsoft is about to be won even though Netscape was one of the casualties.

While I don't care about web apps, the improvements HTML5 give us will prove highly useful for what I care more about.

Towards HTML6, the document format

I doubt html5 will ever include native spreadsheets support, slide transitions, page footers and headers… you name it. ODF will not support local databases nor globalStorage.

Spreadsheet support has been discussed, this is just a matter of time. Transitions are solved in a number of ways, CSS, SVG, SMIL, and of course hacking the whole thing in JavaScript. For page footers and headers, see Paged Media and Generated Content for Paged Media. I have claimed that if we want to replace PowerPoint we will need a CSS module for presentations.

The Open Office concept of a document is content that Open Office is able to handle, which purely coincidentally match very closely to what Microsoft Office is able to handle. That includes media compositions, HTML5's video element may be good, but lacking in ambition. In addition to showing a video, YouTube style, it should be possible to synchronize media, like running an external sound track over a video or running any media in response to an event. Whatever else I may think of the rest of SMIL, the synchronization model is good.

More importantly still documents don't thrive in isolation. They are social beings and should be put in a context together with other documents. While I wonder about the particulars of a local database, globalStorage, recently renamed localStorage, could be part of such a context.

Join the Conversation

Comment

Leave a Reply to Anonymous Cancel reply

Your email address will not be published. Required fields are marked *