Solving the incompatibility problem

An interesting article related to this subject appeared at on December 3, 2003. It is The Myth of Doomed Data by Simson Garfinkel.


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:

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 world-widely. 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. Microsoft even made an effort to make their MSN website illegible for people using the Opera web browser! See here 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 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:

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:

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:


I hope I have convinced the reader that the best way to solve and prevent the incompatibility problem is by standarding data (file format) and the way data is exchanged (protocols) instead of standardising applications.