Eyebrows raised around the globe last week, as Microsoft announced that it would license Windows source code to third-party developers as part of a settlement of antitrust litigation in the European Union. E.U. competition regulators had demanded that Microsoft make detailed technical documentation available to developers who want to write software that will interoperate with key Windows protocols. In a surprise move, Microsoft decided to go them one further.
"What we're obligated to license, under the European Commission's decision, is specifications, documents that describe how these protocols work," Microsoft's general counsel, Brad Smith, said at a press conference in Brussels. "We're not obligated to license their source code. But one thing is perfectly clear: If you want to understand these communications protocols, the source code is the ultimate documentation."
Perfectly clear? To a Microsoft engineer, maybe.
E.U. competition commissioner Neelie Kroes seemed to grasp the truth of the situation when she spoke to Reuters from Switzerland on Thursday. "Normally speaking, the source code is not the ultimate documentation of anything," she said, "which is precisely the reason why programmers are required to provide comprehensive documentation to go along with their source code."
Source code is the language that humans use to program computers -- nothing less, nothing more. Although it may be based on familiar words and structures, it's not human language. Studying it can show you the sequence of events that are executed in a given program. What it can't show you is why.
To say that source code is the ultimate documentation of how a program works is akin to saying that the ultimate documentation of how a car engine works is the schematic diagram that gets sent to the factory. It's sort of true. How useful that documentation is, however, depends greatly on the audience viewing it.
Did anyone really expect Microsoft to just comply with E.U. competition regulators without any shenanigans?
Still, this situation points out an important truth about Microsoft's competition, which is coming from the world of open source. Open source is often said to be superior to proprietary software for a number of reasons, not the least of which is the availability of source code. In particular, open source software is said to be inherently more secure and less likely to contain long-standing bugs, owing to the transparency of its code.
But if having access to Microsoft source code isn't enough to give third-party developers a good understanding of the inner workings of Windows, should the fact that customers have access to the source code to free software applications be any more reassuring?
For example, Mozilla Firefox is one of the most widely used open source applications. And yet, the source code that comprises this one program is a massive thing. Interpreting it is a daunting task even for seasoned developers. Nobody just starts hacking on Firefox on a whim.
What open source has that is really unique, however, can be summed up in one word, a word that's bandied about so often that it's almost lost its meaning: community. Proper documentation for open source software is notoriously lacking, but the shared body of knowledge of the developers and users of that software is available to anyone for the asking.
Microsoft says it will give independent developers a "reference" license to the Windows source code -- basically, a license to look but not touch. But what about community? Will the terms of that license allow developers to compare snippets of code? Publish benchmarks of specific algorithms? Discuss flaws and possible work-arounds among themselves?
Access to source code is one tool, but it's not a perfect one, and it's certainly not the only one that's needed to truly understand how software works. For Microsoft to offer access to its code is encouraging. But until we hear the full terms of the license, it's too soon to say whether Microsoft is really offering anything of value.