TIOBE Software has maintained a Programming Community Index for more than 10 years. Updated on a monthly basis, it is an indicator of the popularity of programming languages in use around the world. The ratings are based on the number of skilled engineers, courses, seminars, and third party vendors actively using the various technologies determined primarily through search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu.
The April 2012 edition was recently released and highlighted some interesting market trends…
From a position of strength at the turn of the century, Java usage has been in a steady state of decline for the past decade. This past month it actually lost its top ranking and fell below the popularity line for the C programming language ( which has maintained a relatively stable state in recent years ). There are obviously numerous reasons for Java’s fall from grace but the acquisition of Sun Microsystems by Oracle in late 2009 has certainly not helped reverse its fortunes.
Interestingly, PHP usage has also been declining according to TIOBE, with usage peaking at 10% between the years 2005-2010 and experiencing a steady decrease in the years since, to ~5% today. Ironically, this has happened despite the strong growth of LAMP CMS systems like Wordpress, Drupal, and Joomla! in recent years. Perhaps customers have realized that PHP is still not capable of living up to the business challenges in mid-market and enterprise environments, and are looking elsewhere for tools they can depend on.
The largest beneficiary of the decline in Java and PHP usage appears to be Microsoft’s .NET platform. In particular, usage of Microsoft’s C# programming language has been steadily increasing since it was introduced in 2002 and may soon achieve 10% market share. Combine that with usage of Visual Basic and you will notice that usage of Microsoft technology is near 15% worldwide ( nearly twice the adoption of PHP ), and is one of the few development platforms experiencing steady year over year growth. I believe this speaks to the proven reliability and enterprise capabilities of .NET, as well as Microsoft's ongoing commitment to maintain the relevance of its technology stack.
Based on the graph, it is also interesting to note that C# usage surpassed Visual Basic usage in late 2010, which coincidentally was the exact same time that DotNetNuke Corporation announced that it was going to migrate its core framework from VB to C#.
A few weeks ago Microsoft surprised many folks in the industry by announcing a new wholly owned subsidiary known as Microsoft Open Technologies, Inc. The stated goal of the new enterprise is to advance the company’s investment in openness – including interoperability, open standards and open source.
"The subsidiary provides a new way of engaging in a more clearly defined manner. This new structure will help facilitate the interaction between Microsoft's proprietary development processes and the company's open innovation efforts and relationships with open source and open standards communities," said Jean Paoli, who becomes president of the subsidiary after serving as Microsoft's general manager of interoperability strategy.
Since Microsoft chose to trickle out the announcement without much fanfare and without any detailed specifics, there has been a lot of speculation by industry analysts and media in the weeks since. Depending on their level of paranoia for the software giant, people seemed to fall into one of two camps, those who think that Microsoft created the subsidiary because of a desire for greater interoperability and compatibility, and those who feel they were looking for ways to protect their extensive patent portfolio. I actually think that neither of these conclusions were the primary driver. Instead, I personally think it has to do with IP governance.
Based on my experience as a founding interim director and advisor of the Outercurve Foundation, I have some insight into one of Microsoft’s previous open source initiatives. The mission of the Outercurve Foundation is to enable the exchange of code and ideas between commercial software companies and open source communities. Microsoft was the sole founding sponsor of the Foundation, providing the initial funding to create the non-profit organization and playing an instrumental role in defining its bylaws and agenda. Conceptually it appears that there is high degree of overlap in the goals of the Outercurve Foundation and the new Open Technologies Inc. subsidiary. However, it is important to note that the Outercurve Foundation was established as a completely independent entity, not owned or controlled by Microsoft in any way. I believe that this may be the primary driver for Microsoft’s decision to spin up a new open source commercial subsidiary rather than relying on the existing foundation.
The Outercurve Foundation utilizes a Gallery model for managing open source projects. There are currently four galleries which represent a variety of projects, with the majority based on Microsoft technology. Some open source projects have been contributed by the community and others originated within Microsoft. The important thing to note is in regards to project governance. In the majority of cases, the copyright for the open source projects intellectual property has been signed over to the Outercurve Foundation by the project founders. In turn, the Outercurve Foundation provides a variety of benefits including legal indemnification and IP management of contributor license agreements. However, this transfer of ownership to a non-profit foundation is not appropriate for every open source project. And I think this has created a bit of a dilemma for Microsoft over time.
As Microsoft has become more open in recent years, it has wanted to share more assets with the community. However, there is fairly clear evidence that Microsoft and Open Source are still “strange bedfellows” as they have not been able to share IP in a consistent manner. For example, Microsoft transferred ownership of the ASP.NET AJAX project to the Outercurve Foundation back in 2009 where the project was then released under a standard BSD open source license. Similarly, it transferred ownership of Orchard and WebFormsMVP. However, when Microsoft announced that it intended to release ASP.NET MVC under an open source license ( Microsoft Public License - MS-PL ), it did not transfer the IP to the Outercurve Foundation. Instead, it chose to retain ownership of the IP and continue to develop it internally.
So I think its not a coincidence that the announcement of the Open Technologies Inc. subsidiary comes hot on the heels of the announcement a few weeks earlier that the ASP.NET Web API and ASP.NET Web Pages ( including the Razor parsing engine ) are now available under an open source Apache 2.0 license. My hunch is that Microsoft Legal did not feel comfortable transferring these sizable technology assets to a third party foundation for governance. Rather, it might make more sense for this IP to be managed by an official commercial subsidiary of Microsoft, as it gives them much greater control and flexibility over how they engage with the community, accept contributions, and allow Microsoft employees to assist in its ongoing development.
I guess we will just have to wait and see how this new Open Technologies Inc. initiative from Microsoft evolves…