Talking with Microsoft officials last week, I was surprised to hear a key reason for the company getting involved with things like optimizing Windows for PHP: it was the only way to ensure products like PHP work with Microsoft technology at all.
Even as traffic is up to Microsoft's open-source code hosting site, CodePlex, and even as it starts to release code under standard open-source licenses like Apache and openly include open-source code in its products like Powerset, the open-source world seems to be closing off somewhat.
WordPress? Written for MySQL. PHP? Same. The list goes on.
While I'm glad to see a robust and growing open-source ecosystem, and while I recognize that some decisions like this are driven by technology and not any desire to omit support for proprietary databases and application servers, I'm not as glad to see one that replicates all that I dislike about proprietary ecosystems.
One of my chief complaints about Microsoft has been that it required the use of its other products to get the full experience. Like SharePoint? Well, you're going to also have to like Windows Server, Internet Explorer, SQL Server, etc., because it requires a host of other Microsoft software to function. Microsoft has traditionally tied products together to drive lock-in. Is open source doing the same?
But now Microsoft is changing this strategy, albeit slowly. The company is starting to modularize its stack because it recognizes that it must compete in a heterogeneous IT environment. That's what this work with PHP and other open-source systems is all about (though the risk remains that Microsoft is seeking to invite open source into the Borg, and not provide an exit).
Open source should be truly open. Some open-source projects and vendors get this. Red Hat? It works with a slew of proprietary applications. SugarCRM? Run it with just about any operating system, database, application server, etc., that you could wish. And so forth.
Open source is about choice, including the choice to run open source with closed complements. Yes, sometimes the lack of proprietary complement support is a matter of resources, not intention. But to the extent that we build projects that run only with other open-source projects, and intend them to only work with open-source components, we're acting like the proprietary ecosystems that we've been trying to overcome. We shouldn't pull a Microsoft. Or, given its seemingly new direction, maybe we should.
Follow me on Twitter at mjasay.