Interoperability - but on whose terms?
Every once in a while, Microsoft issues an "Executive E-mail". The latest of
these exercises in public relations comes from Bill Gates, and it's titled Building
Software That Is Interoperable By Design. It's worth examining this e-mail a
bit more closely to see just what Microsoft means by "interoperability" these
On the plus side, Gates recognizes that we all need to make systems from
different vendors work together, and that this is a hard and perennial problem.
He seems to me (from a developer point of view) to be going down the right path
by saying "With a common understanding of basic protocols, different software
can interact smoothly with little or no specific knowledge of each other."
Experience has indeed shown us that this is a much better strategy than, say,
binary compatibility for everything.
But after that strong start, he wanders off into a bunch of statements that I
find a lot more questionable from the technical level (though understandable as
market-speak). Let's look at some of these:
- Adherence to a published standard is not all that important. This is easy
for a company with many secret "standards" of its own to say, of course. Saying
this amounts to saying that Microsoft is for interoperability, as long as they
get the parts that you get to interoperate with.
- XML Web Services are the best path to interoperability and eliminating
friction between heterogeneous components. Well, that may be true if you're one
of the companies pushing the entire baroque WS-* stack of protocols. But there
are disadvantages to XML and Web services as well, ranging from verbosity to
complexity of implementation, that make me skeptical. I don't think we'll look
back in five years and say "hey, that really was the answer!"
- Open source is bad for interoperability because it adds testing complexity
and fragments the market. I think at this point Microsoft would claim that open
source software caused tooth decay if they thought anyone would believe
There's also some bait-and-switch going on in this e-mail. Gates points to
Office 2003 as an example of data interoperability: "Office documents,
spreadsheets and forms can be saved in an XML file format that is freely
available for anyone to license and use." Well, that's a good thing, except that
(a) the license appears to be incompatible with most open source software and
(b) most people don't save their Office documents as XML; rather, they keep them
in Microsoft's proprietary, non-interoperable binary formats.
But my greatest concern with this "we love interoperability" goes beyond such
nitpicking. I find it difficult to reconcile this image of Microsoft as the
nicely interoperable company with its history. Off the top of my head, we have
the lengthy antitrust battle that resulted in Microsoft being ordered to open up
some APIs for licensing so that people actually could build interoperable (and
the continuing charges that the licensing fees are high and the program not
successfully implemented); the attempt to patent and license the FAT file format
(subsequently rejected by the Patent Office); and the attempt to attach a
non-GPL compatible license to the CIFS documentation (which could have been
useful to the open source Samba project if they hadn't already figured out
everythign in the document.
Don't get me wrong: I think interoperability between different vendors'
software is a great thing, and I'm always happy to see Microsoft build software
that plays well with others. I just don't think that a company that continues to
try to fence out large segments of the development market from interoperating
with their own products, and that tries to set its own terms for
interoperability, should be out there claiming to be the industry leader in this
Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.