Friday, September 3, 2010

An Office suite that would really be sweet

I've watched word processors and spreadsheets develop over the last 20 years or so. Interestingly, they've grown closer together - features previously only available in one are now available in both. This is a Good Thing. Pity it hasn't gone any further in the last five years or so. Let's take a look under the hood.

The days when documents were a flat text file and spreadsheets were a simple database are (sadly for those of us who like to repair them by hand) long gone. The capabilities of the office programs have developed to the point where those storage algorithms are simply inadequate. We have object-oriented files now - a limitless stream of object definitions which are completely self-contained and can be listed in any order in the file.

Actually that helps us a lot. We don't have the fundamental difference between spreadsheets and documents at the file-type level. This object is a footnote frame with a page number in it. This object is a cell with a formula in it. Can they coexist? Of course they can, they're objects on an equal footing.

So let's examine the various types of office suite files and work out what is the fundamental difference between them. Let's use word processor documents as the baseline for comparison.
a) Emails - there are some predefined objects (To, cc, bcc, subject, etc) but no other difference.
b) Spreadsheets - they have formulas and constant re-evaluation, but that can easily be added to a word processor document.
c) Presentations - they usually go by screen sizes rather than paper sizes, but that's a very simple change. They also have options for animation - again, no problem adding that to a word processor.
d) Page layouts - even today there's practically no difference between a word processor and a page layout builder, the word processor is just a dumbed-down version.

So if we took our hypothetical page layout program and added a POP/SMTP gateway, a formula evaluator and a "full screen mode", we'd be half way there. Then all we'd have to do would be unify the five lists of object types (making sure there's no double-ups) and make some templates.

Yes, templates. You know about "letter", "resumé", "business proposal" etc - all we have to do is add "spreadsheet", "email" and "presentation".

That's really all there is to it. Oh, apart from recoding the whole thing and giving it some actual performance. How about it, guys?

No comments: