One of the most interesting journeys being undertaken at the moment in computing is that of Microsoft towards open source. Here are some more steps along that path:
Open Specification Promise: Microsoft is putting a wide range of protocols that were formerly in the Communications Protocol Program under the Open Specification Promise (OSP). This guarantees their freedom from any patent claims from Microsoft now or in the future, and includes both Microsoft-developed and industry-developed protocols.
Apache Software Foundation: Microsoft is becoming a sponsor of the Apache Software Foundation (ASF). This sponsorship will enable the ASF to pay administrators and other support staff so that ASF developers can focus on writing great software.
PHP on IIS + SQL: Microsoft is contributing a patch to ADOdb, a popular data access layer for PHP used by many applications. The patch enables support for SQL Server through the new “native driver for PHP” built by the SQL Server team. ADOdb is licensed under the LGPL and BSD. This is our first code contribution to PHP community projects but will not be the last.
Let's look at these in turn.
The amendment to the OSP is obviously welcome, since it fills in some of the loopholes. But it's still by no mean clear what the long-term utility of the OSP will be: there are questions to do with how it plays with successive versions of Microsoft code, for example. However, this latest move suggests that Microsoft is serious about fixing those problems, which may well be sins of omission rather than commission.
The sponsorship of the Apache Software Foundation is the move that has got everyone excited, but it's worth bearing in mind that the $100,000 Microsoft is paying is a rounding error as far as its budgets are concerned. Moreover, it's easy to see this as just a continuation of several other sponsorships – notably of conferences – that the company has signed up for as part of its latest tactic of nuzzling up to open source in a fairly painless way.
The PHP move might seem to be the least interesting, but is, I think, actually the key one in terms of understanding what is really going on here. As the announcement above explains: “The patch enables support for SQL Server through the new “native driver for PHP” built by the SQL Server team.” Moreover, “We have tested over 100 community PHP applications and found them to run on IIS with no changes required.” What this shows is that Microsoft is trying to make the extremely popular PHP run as well as possible on Windows and SQL Server. The reason is not hard to discern: given that people are going to use PHP, Microsoft wants to make sure that they can do so on Windows too, without taking any performance hit.
Ultimately, I believe that this is also why the company is giving money to the ASF: it recognises that despite years of extremely heavy marketing, it has been unable to destroy Apache's lead over IIS entirely, even if it has shaved off some percentage points. Since people insist on using Apache rather than IIS, the best Microsoft can hope to do is to persuade them to run it on Windows, and that means making it run as well as possible on that platform.
I predict that in the coming months we'll see plenty of visits to Seattle by Apache coders, and plenty of help coming from Microsoft engineers in terms of tweaking and optimising Apache code on Windows. Indeed, it's already happening: "The company recently invited several Apache contributors to visit its Redmond headquarters for informal interoperability talks." The mention of one of Microsoft's favourite memes, "interoperability", also raises the possibility of Apache starting to add Microsoft's proprietary technologies - .NET, for example - effectively forking the project.
There's a common theme here: replacing GNU/Linux at the bottom of the open source stack, and making the applications more Windows-friendly. Microsoft seems to think – rightly, in my view – that the free software threat to its business will be blunted considerably if it can move users of enterprise open source applications onto Windows by encouraging and optimising ports to that platform. Steve Ballmer's own words, contained in a recent memo to the whole company about future strategy, highlight the importance of beating GNU/Linux in this sector:
Business and enterprise: Our enterprise and server business has never been stronger—today we are on the verge of becoming the number one enterprise software company. We need to continue to push on all fronts—mail with Exchange, business intelligence with PerformancePoint, virtualization with Hyper-V, and databases with SQL Server. We have to drive our enterprise search capabilities, our unified communications solutions, and our collaboration technologies. And we must continue to compete against Linux in key workloads such as Web servers and high performance computing.
Notice how GNU/Linux is singled out as the main threat in this area, and that the Web server sector – Apache's territory – is mentioned by name.
This is not to say that some good can't come of Microsoft's closer engagement with open source through sponsorship and suchlike: I'm sure there many people at the company who would genuinely like to work closer with the free software community for mutual advantage. But the fact remains that top managers like Ballmer have a far more adversarial bent, and will want the benefits cooperation to flow mainly in one direction. This means that those in the Apache Software Foundation – and any other group that starts to engage with Microsoft – would do well to ensure that they have a good supply of long spoons.