Using Microsoft and Interoperability in the same sentence makes me chuckle every time. Well, partly it could be due to my open source bias and I am not denying that. Off late, Microsoft has been making half-hearted attempts to embrace open source. I use the term “half-hearted” here because they do show some serious willingness to embrace open source on one side but they also indulge in open source bashing and threats from the CEO level onwards. In short, I am of the opinion that Microsoft wants open source their way than the real open source way.
Having made my thought process clear about Microsoft’s willingness to embrace the idea of “openness”, I thought I will share my opinions on their interoperability/portability claims. Ever since they lost out the first mover advantage to Amazon in cloud computing, Microsoft is touting openness and interoperability with their Azure platform. They preach interoperability almost in the same way Richard Stallman preached software freedom, with a zeal. Now, they have even come out with a website for interoperability standards in the cloud. Having lost the marketshare to Amazon, it is only natural that Microsoft sprinkles “open” and “interoperability” in their campaign. We have seen again and again how companies falling big behind the market leader embrace openness as a tool to fight back. I guess Microsoft’s love for interoperability follows the same trend.
In fact, I am excited about Microsoft talking about openness and interoperability. In fact, as open source evangelists, many of us have long worked hard to make this happen. An interoperable world lead by Microsoft is very good for the industry, especially the users. It will lead to increased innovation while empowering the users of cloud services with more freedom. However, I am still not happy with all the interoperability talk by Microsoft. Yes, I agree that we can now run Java, PHP and other open source applications on top of Windows Azure. But is it the true meaning of interoperability?
True interoperability is always a two way traffic. What is happening with Microsoft’s cloud initiative is that we can take all sorts of applications from other platforms to Windows Azure but we cannot do the same with .NET applications running on Azure. Yes, we can port some of the .NET applications to certain versions of Windows server operating systems running on Amazon or other clouds. For me, it is not openness. It is not the right way to do interoperability. All Microsoft is doing is to ensure that web servers like Apache and database servers like MySQL run seamlessly on the Azure platform. It is not interoperability but it is plain old opportunism. Well, opportunism is not wrong. In fact, it is even necessary for success in the business world. However, I will seriously respect their interoperability claims only if they offer me an easy way to seamlessly port my .NET applications to Linux platform. Maybe, they should work even more closely with folks at Mono project to make this happen. When the day comes when I will be able to move all my applications (whether it is based on open source frameworks or .NET framework) to any platform running on any providers’ cloud, I will definitely agree with Microsoft’s interoperability claims. Till then, it is just a tactic to get more users on to their service.
Having said that, I want to clearly state that I don’t have any problem with Microsoft’s closed approach. They have every right to take the approach and as long as there is a market for it, it is even a smart way of doing business. My problem is not with their proprietary, closed way of doing technology. My problem is only with their claims about interoperability. Interoperability is never a one way street.