I was reading this ZDNet blog about the Browser becoming the new Desktop, and one question came to mind. What happened to the promise of inter-operable parts of your computer environment?
About 15 years back, when computers were going to create the paperless office, all of the operating system and desktop teams were promising this glowing future when you could mix and match components seamlessly. You can have one spell checker, one email program, one internet interface, one text editor, one math interface (as for spreadsheet formulas), and so on. But they didn’t have to be from the same source! WordPerfect would work with 1-2-3 would work with Usenet (email), and their respective parts could be called up by your schedule program. This didn’t come to be.
Now, for example, you have one spell checker for each brand of each component. Microsoft did follow the Lotus model, and integrated text, spreadsheets, and email so that they share a spell checker. But there is no way to use the Microsoft spell checker from (for example) your web design program (unless you do buy it from MS). Nor can you use it from your browser, even if you are still shackled to IE. Sure, FireFox comes with spell checking, but you have to train it for your special needs from scratch.
It would be nice if I only had to remember one set of special formula commands that do the same things in several different programs, too.
But sadly, this promise faded away, possibly buried under the tons of paper records that office computers now generate for (as near as I can tell) strictly CYA reasons.
The grand idea of electronic data exchange was a victim of corporate greed and incremental copyrights and patents(some of these are absolutely absurd, such as the particular image used for an icon on the Desktop screen). As small computers became umbiquitous, the software houses grew into powerful legal entities, and realized that they could increase revenues by using proprietary, closed binary formats for their documents.
Microsoft management has been on the forefront of inhibiting interoperability in order to enhance profits.
However, things are quite different in the open source world, where open and non proprietary standards are the norm. Which is why Microsoft is scared silly of Open source.
Take the example of Open Office. While it can read and write formats of many proprietary programs, its native format is compressed xml. XML is and open standard for data storage, and is based on older open standards. Microsoft has recently started "upgrading" their products to include XPS, which is a Microsoft-centric compressed xml format with "extensions". My guess is that Microsoft intends to patent XPS and then sue Sun for patent infringement. Recent changes to copyright laws have minimalized prior art as a chalange to patents, and prior art has been the cause of revocation of many of microsofts patents in the past.
To address the spell checker issue specifically, all Cocoa applications in OS X have access to the system spell checker, so your "learned words" are shared between most programs. On Linux, aspell typically fills this void. I wouldn't be surprised if Microsoft has a universal spell check API by now, too, but they waited so long to address this need that it will take some time for the applications to catch up.
Your other interoperability concerns (i.e., those describing interoperability between third-party applications, rather than services provided by the OS such as a spell checker) are issues of open standards and file formats. Some of them actually are currently implemented – just not on Microsoft Windows. For just one example, on Linux I can use GNOME or XFCE or KDE as my desktop environment, for example, and yet all my panel widgets will still work, thanks largely to the efforts of the freedesktop project ( http://www.freedesktop.org/ )
"Services provided by the O/S" is a slippery phrase. I have watched as many obvious third party apps have been turned into parts of the Microsoft core. Such as un-erase (trash can/recycle bin), file compression (arc, zip, stuffit), defragging, programming languages (e.g: Basic was part of the o/s, then not, then was, now again not), the TCPIP stack (the internet), web browser (Mozilla and Netscape were selling in 2nd and third versions before IE came out), email, sound editing (my first few computers had no sound card), and many others.
Because there is no standard concerning what API's or services an operating system must provide, application developers must have their own (for example) spell checker as part of their distribution. It is easier for them to just use their own than to figure out how to hook into all the others. There is no standard for that.
This is true of other environments. It has always bugged me that there is no vector (line) drawing standard on the web (the graphical internet). It would have been so easy, but now (14 years later) one must still install Flash or Java (or ActiveX, the hacker's friend) to allow such a simple and obvious component to work on a web page. It seems to me that a vector interpreter should be as much a part of the operating system as bitmap drawing.