Today Microsoft announced a significant initiative which aims to provide the developer community with access to a large number of Microsoft protocols and file formats.
Many of the specifications will be made available under the Microsoft Open Specification Promise (OSP) which enables both open-source and commercial companies to build implementations of the said specifications.
While OSP has existed for a while until today it has covered mostly marginally interesting specifications. However, on Feb 15th, 2008 things started getting interesting when Microsoft somewhat silently published the much sought after Microsoft Office File Formats. I was very excited when I saw those specifications published under the OSP.
I have always had a soft spot for Web-based document management systems. As a result we have invested a significant amount of resources in delivering PDF and Lucene support in Zend Framework. With this support it was possible to develop a lightweight document management system which would allow users to upload their PDFs, which would then be read by ZF's PDF component, indexed with ZF's Lucene component and then made searchable. But this idea would never be complete without supporting the most popular document formats including doc, ppt and xls. I hesitated to encourage the community to build readers for these formats as it was unclear what the restrictions were on such implementations. Apache has had the POI project for a long time but it was never great (partially due to the closed Microsoft specs) and I was never quite sure whether it was completely kosher from a Microsoft licensing point of view.
This is just an example of how today's announcement is significant. With Microsoft opening up their specifications under the OSP, open-source communities like Zend Framework are now able to build such solutions without fear of litigation. There are many other areas where it will benefit open-source projects including Samba (SMB), FreeTDS (SQL Server), Mono (.NET), and others...
So who are the winners?
- Foremost Microsoft. I have no doubt Microsoft is doing the right thing for their business. I believe Microsoft has finally understood that their closed nature has significantly hindered the growth of their eco-system. In many ways the threat of Linux has by many been interpreted as a threat of open-source (wrongly so in my opinion). Microsoft has started understanding that and is now making it easier for open-source projects and commercial companies to extend their platform and add value to it. I have long been a believer that nothing is as strong as a vibrant eco-system. Microsoft has had a strong Microsoft-centric eco-system but going down this path they are able to extend their applicable market beyond today's reach.
- The open-source community is also a potential winner. The uncertainty and lack of information around Microsoft specifications has hindered the development of open-source solutions which leverage that technology. There are cases where projects have been very successful despite the lack of specifications, for example Samba, but others like FreeTDS have had quality issues as a result. Microsoft is now enabling the open-source community to grow its contributor base around such technologies and significantly improve the delivered quality. As most open-source developers and users live in heterogeneous environments this will benefit many.
- Small and large ISVs benefit from the open specifications by making it easier and in many instances cheaper to develop solutions which interoperate with and leverage the Windows platform.
Who are the losers?
- Microsoft's competitors definitely lose from this initiative. Whether it's IBM who have always held the closed nature of Microsoft's solutions against them will have a harder time convincing customers and legislature that this is an issue; the DB vendors including Oracle and IBM who have benefited from Microsoft's resistance to opening up their TDS protocol to the broad open-source community; and many others who have managed to benefit from Microsoft's mistaken strategies.
- Linux and OpenSolaris - Microsoft's all or nothing approach has been an accelerator for the adoption of open-source operating systems. While I am a big fan of Linux I do believe that this is going to put an increasing amount of pressure on the Linux/UNIX backers to deliver innovation and value on top of these systems. The additional competition will be good for the end user and I think will help Linux thrive (for the same reason the OpenSolaris vs. Linux competition is good for us).
What does this mean for the PHP Community?
I believe the PHP community can only benefit from this move. With PHP being a heterogeneous solution which works on pretty much any operating system, any database and any Web Server; the more interoperability capabilities it has with all open-source and proprietary solutions the better. PHP users just want to get the job done and this will help them do just that.
So is this all good?
I believe it will take time for both the developer communities, the end users and for Microsoft to figure out the exact rules of engagement. There are going to be situations where Microsoft's promise may not go far enough which could create tensions.
In addition, there are going to be certain pieces of the specifications which may require a royalty payment to Microsoft when used in commercial distributions. This is common practice in the industry so it's going to really depend on the specifics whether this becomes an issue. For example, if this puts a requirement on Redhat to pay royalties for distributing Samba it could become a problem as a significant amount of the open-source community uses commercial Linux distributions. The devil's in the details so we will need to wait and see.
All in all I think this is a positive move but we will have to see over the next few months how this pans out.
This is merely an initial interpretation of the news. I don't have any inside information regarding Microsoft's goals nor any insight into how Microsoft's competitors view this move.