For the last decade, I have repeatedly, in my imitable
Microsoft fan boy style, offered an alternative view to commonly held beliefs
about Microsoft's stance on open source licensing. In earlier times, leading figures in
Microsoft were very vocal in resisting the idea that commercial licensing is
outmoded or morally reprehensible. Many
people interpreted this as all-out corporate opposition to open source
licensing. I never read it that way. It
is true that I've met individual employees of Microsoft who are antagonistic
towards FOSS (free and open source software), but I've met more who are
supportive or at least neutral on the subject.
In any case, individual attitudes of employees don't necessarily reflect
a corporate stance. The strongest
opposition I've encountered has actually come from outside the company. It's not a charitable thought, but I
sometimes wonder if there are people in the .NET community who are opposed to
FOSS simply because they believe, erroneously, that Microsoft is opposed.
Here, for what it is worth, are the points I've repeated
endlessly over the years and which have often been received with quizzical scepticism.
a) A decade ago,
Microsoft's big problem was not FOSS per se, or even with copyleft. The thing which really kept them awake at
night was the fear that one day, someone might find, deep in the heart of the
Windows code base, some code that should not be there and which was published
under GPL. The likelihood of this ever
happening has long since faded away, but there was a time when MS was running
scared. I suspect this is why they held
out for a while from making Windows source code open to inspection. Nowadays, as an MVP, I am positively
encouraged to ask to see Windows source.
b) Microsoft has
never opposed the open source community.
They have had problems with specific people and organisations in the
FOSS community. Back in the 1990s, Richard
Stallman gave time and energy to a successful campaign to launch antitrust
proceedings against Microsoft. In more
recent times, the negative attitude of certain people to Microsoft's submission
of two FOSS licences to the OSI (both of which have long since been accepted),
and the mad scramble to try to find any argument, however tenuous, to block their
submission was not, let us say, edifying.
c) Microsoft has never, to my knowledge, written off the
FOSS model. They certainly don't agree
that more traditional forms of licensing are inappropriate or immoral, and
they've always been prepared to say so.
One reason why it was so hard to convince people that
Microsoft is not rabidly antagonistic towards FOSS licensing is that so many
people think they have no involvement in open source. A decade ago, there was virtually no evidence
of any such involvement. However, that
was a long time ago. Quietly over the
years, Microsoft has got on with the job of working out how to make use of FOSS
licensing and how to support the FOSS community. For example, as well as making increasingly
extensive use of Github, they run an important FOSS forge (CodePlex) on which
they, themselves, host many hundreds of distinct projects. The total count may even be in the thousands
now. I suspect there is a limit of about
500 records on CodePlex searches because, for the past few years, whenever I
search for Microsoft-specific projects on CodePlex, I always get approx. 500
hits. Admittedly, a large volume of the
stuff they publish under FOSS licences amounts to code samples, but many of
those 'samples' have grown into useful and fully featured frameworks, libraries
and tools.
All this is leading up to the observation that yesterday's
announcement by Scott Guthrie marks a significant milestone and should not go
unnoticed. If you missed it, let me
summarise. From the first release of
.NET, Microsoft has offered a web development framework called ASP.NET. The core libraries are included in the .NET
framework which is released free of charge, but which is not open source. However, in recent years, the number of
libraries that constitute ASP.NET have grown considerably. Today, most professional ASP.NET web
development exploits the ASP.NET MVC framework.
This, together with several other important parts of the ASP.NET
technology stack, is released on CodePlex
under the Apache 2.0 licence. Hence,
today, a huge swathe of web development on the .NET/Azure platform relies
four-square on the use of FOSS frameworks and libraries.
Yesterday, Scott Guthrie announced
the next stage of ASP.NET's journey towards FOSS nirvana. This involves extending ASP.NET's FOSS stack
to include Web API and the MVC Razor view engine which is rapidly becoming the
de facto 'standard' for building web pages in ASP.NET. However, perhaps the more important
announcement is that the ASP.NET team will now accept and review contributions
from the community. Scott points out
that this model is already in place elsewhere in Microsoft, and specifically draws
attention to development of the Windows Azure SDKs. These SDKs are central to Azure development. The .NET and Java SDKs are published under
Apache 2.0 on Github and
Microsoft is open to community contributions.
Accepting contributions is a more profound move than simply releasing
code under FOSS licensing. It means that
Microsoft is wholeheartedly moving towards a full-blooded open source approach
for future evolution of some of their central and most widely used .NET and
Azure frameworks and libraries. In
conjunction with Scott's announcement, Microsoft has also released Git support
for CodePlex (at long last!) and, perhaps more importantly, announced
significant new investment in their own FOSS forge.
Here at Solidsoft we have several reasons to be very
interested in Scott's announcement. I'll draw attention to one of them. Earlier this year we wrote the initial
version of a new UK Government web application called CloudStore. CloudStore provides a way for local and
central government to discover and purchase applications and services. We wrote
the web site using ASP.NET MVC which is FOSS.
However, this point has been lost on the ladies and gentlemen of the
press and, I suspect, on some of the decision makers on the government
side. They announced a few weeks ago
that future versions of CloudStore will move to a FOSS framework, clearly
oblivious of the fact that it is already built on a FOSS framework. We are, it is fair to say, mildly irked by
the uninformed and badly out-of-date assumption that “if it is Microsoft, it
can't be FOSS”. Old prejudices live on.