solving the Incompatibility Problem
An interesting article related to this subject appeared at www.technologyreview.com on December 3, 2003. It is The Myth of Doomed Data by Simson Garfinkel.
introduction
Do you get irritated when you receive e-mails containing HTML for a fancy layout? Or when someone sends you by e-mail a Word document containing a few lines of text (that could easily have been sent as a text-only message)? Or when a company sends its weekly newsletter in Word format and you are using Linux and may not have access to Microsoft Word at all?
If so, then you are suffering from the incompatibility problem. You might feel a bit relieved to know you are not the only one suffering from this problem.
If not, then it is likely your computer runs Microsoft Windows, your word processor is called Microsoft Word and you use Microsoft Outlook as a mail client. And probably you are viewing this web page in Microsoft Internet Explorer.
the incompatibility problem
I define the incompatibility problem as the problem that data created with one application can not be used by another application without problems. Examples of data are text documents, spreadsheets, web pages, e-mails, music and pictures.
Unfortunately, there are many examples of this problem:
- documents created in Microsoft Word look slightly different when opened in Open Office Writer
- e-mails formatted in HTML become illegible when opened in a text-only mail client
- web pages specifically designed for Internet Explorer look very different in other browsers (e.g., Mozilla Firefox, Opera and Konqueror)
- even worse: some web pages designed for Internet Explorer are completely unaccessible in other browsers (e.g., because Visual Basic scripts are used)
solution 1: standardise the software
One way to prevent the incompatibility problem is by using one application per type of data, so that there is no 'other application' that has problems with that type of data.
This solution is very popular in companies. Especially large companies tend to choose one word processor, one spreadsheet, one mail client, etc. All of their employees must use those applications, which become a company-wide standard.
To avoid the incompatibility problem from occurring, companies have to forbid their employees to use other tools than the ones offered by the company.
But is it wise to solve the incompatibility problem by standardising the applications? This solution has its disadvantages:
First of all, other companies may have standardised another set of applications. The incompatibility problem still exists between companies!
The incompatibility problem between companies could be solved by standardising the applications worldwidely. For a big part this is the case anno 2004: Most people use Microsoft Windows as operating system, Microsoft Word as word processor and Microsoft Internet Explorer as web browser. This brings me to the second disadvantage...
If one becomes dependent on a certain type of application, the producer of that application can ask (even more) ridiculous amounts of money for this application. Further, the producer can get away with delivering an application with serious bugs and security leaks! Switching to another application is hard, because of the incompatibility problem! (Wasn't that exactly the problem that one tried to solve? How ironical...)
side step about Microsoft
There are some good reasons why one does not want to be dependent on Microsoft: their operating systems, mail clients and web browsers contain many security leaks that have allowed many viruses, Trojan horses and worms to infect computers all over the world.
Further, it seems that Microsoft tries to make their customers more and more dependent on their products, e.g., by not publishing the format of their file formats and by adding extensions to HTML that only work in Microsoft Internet Explorer. E.g., allowing scripts written in Visual Basic, by allowing ActiveX components and by adding HTML-extensions that are not part of the HTML standard. Micrsoft even made an effort to make their MSN website illegible for people using the Opera web browser! See the article Why doesn't MSN work with Opera for details.
For me these reasons are sufficient to avoid Microsoft's products! It seems I am not the only one for which this holds: the Belgian federal government decided that as of September 2008 proprietary file formats are not allowed anymore. (See an article at Tweakers.net for more details. Unfortunately this article is available in dutch only.)
solution 2: standardise the data
Another way to prevent the incompatibility problem is by standardising the data instead of the applications that use the data.
In many domains non-proprietary, open standards have been defined for data. For example:
- for sharing documents, that do not need to be edited anymore, the PDF format is well-suited. It replaces the older postscript format that is popular in the Unix domain.
- for offering hypertext documents (e.g., via the Internet) the HTML standard was designed. The document you are reading now is an HTML file.
- for sharing pictures the GIF, PNG and JPG formats are very popular. Computers, digital cameras, DVD players, mobile phones and many more devices can handle these formats. This goes much further than just sharing between applications!
- for sharing music, the MP3 file format and, more recently also the Ogg file format, are widely used. Computers, CD/DVD players, car radios, portable MP3 players and many more devices can handle these formats. Again, this goes much further than just sharing between applications!
The XML standard makes it relatively easy to define new standards for data. The ability to share files between applications, when using XML, comes almost for free! Many new applications and tools (especially from the free-software domain) use the XML standard. For example:
- Ant (Java's version of the 'make' tool) uses well-defined build files, based on XML, which are far better readable than the traditional makefiles.
- Gnumeric (a spreadsheet for Linux) stores its data in compressed XML files. (By the way, Gnumeric handles Excel sheets quite well!)
- OpenOffice (an office suite comparable to Microsoft Office) stores its data as compressed XML files.
- The bookkeeping application GnuCash stores data as XML files.
Note that standardising data does not suffer the problems mentioned for solution 1.
side step about protocols
From standardising data it is a small step to standardising protocols. Protocols typically specify the way data is exchanged between applications, computers or electronic devices. The huge success of the internet has been impossible without standardising protocols.
Avoid using proprietary protocols; use protocols defined in open standards instead. There are many such protocols. A few examples are:
- TCP/IP for sending packets of data. This protocol can be considered the basis of the internet.
- SMTP for sending e-mails.
- POP3 to retrieve e-mails from a mail server.
- FTP for transferring files.
- HTTP to retrieve hypertext documents via the internet. This protocol is typically used by web browser to retrieve web pages.
- RTP, RTCP for streaming data via the internet. These protocols are typically used for streaming audio and video over the internet.

