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 days.

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 them

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 regard.

About the Author

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.