Bill Gates Speaks on Software Interoperability
On February 3rd, 2005, Bill Gates sent out an
executive email to the public regarding the importance of software interoperability. He stated:
Interoperability is more pragmatic than other approaches, such as attempting to make all systems compatible at the code level, focusing solely on adding new layers of middleware that try to make all systems look and act the same, or seeking to make different systems interchangeable. With a common understanding of basic protocols, different software can interact smoothly with little or no specific knowledge of each other. The Internet is perhaps the most obvious example of this kind of interoperability, where any piece of software can connect and exchange data as long as it adheres to the key protocols.
He then goes on to explain how Microsoft approaches interoperability by working to ensure that its software and operating systems work well with the other software and systems already in existence. He further explains that the next step is to define the next generation of software with a greater degree of "interoperability by design", specifically using XML as a common framework from which different applications can communicate.
This idea isn't new, but the fact that Bill is driving focus towards software interoperability is very encouraging. I remember the first time I heard of XML, thinking how it was a nice idea, but that it was a bit "overbilled" and "overhyped". However, I have to admit that using XML as a common interoperability mechanism is a great idea. It allows you to publicize your communication / interoperability schemas without requiring interfacing programs/programmers to understand all of the details about the inner workings of your software. Furthermore, the self-describing nature of XML eases interoperability by reducing the need for extensive documentation surrounding your interoperability mechanisms. Finally, since it's a common standard, it can be used and accepted broadly.
There are so many "religious wars" out there when it comes to software, platforms, standards, etc. There comes a time however when it benefits all to work together. By establishing interoperability standards, we can all score a big win here. I just hope that common sense will prevail and the bickering software/technology/OSS quarrels won't get in the way of true progress.