Open Source Software Seeping Into the .NET Developer World
dp619 writes "In an interview, Microsoft Regional Director Patrick Hynds says that avoidance of open source components by a large part of the .NET developer population is abating. '...While some may still steer clear of the GPL, there are dozens of FOSS licenses that are compatible with Windows developers and their customers,' he said. Hynds cites NuGet, an open source package management system was originally built by Microsoft and now an Outercurve Foundation project, as an example of FOSS libraries that .NET developer are adopting for their applications. Microsoft itself has embraced open source — to a point. It has partnered with Hortonworks for a Windows port of Hadoop, allowed Linux to run on Windows Azure, and is itself a Hadoop user."
The .NET developer community has long favored open source code, even though Microsoft hasn't always done much to encourage it. However, it seems that .NET developers never get even grudging respect from the likes of Stallman and other Linux hardliners out there. Ironically, this hostility towards .NET has played into the hands of those at Microsoft who sought to discourage the use of .NET outside of Microsoft's control. Yes, the patent laws are a problem but Microsoft has already made legally binding promises not to litigate their patents on core technologies and to be honest the whole patent system is so messed up that you're pretty much damned if you do and damned if you don't whether you use .NET or not. So, if you're worried about patents you should do what every sensible startup does and simply ignore them because (a) patents contain zero useful information for coders (they're written by attorneys for attorneys) and (b) knowing that a patent exists means willful infringement which is treble damages.
Microsoft is not quite a single monolithic entity, and different product units can and do have very different perspectives on FOSS. Developer division, in particular, is pretty much forced to deal with it, just because of the wide acceptance of it in the customer base today. Which is precisely why most FOSS you see coming out of MS does come from DevDiv, and a good chunk of that are various frameworks (e.g. ASP.NET MVC or Entity Framework). It's also catching on somewhat for other products - Python Tools for Visual Studio is one prominent example there, and is probably a better example of what a FOSS MS project should really be, since it goes beyond just publishing the code (under Apache license), and also takes external contributions.
(disclaimer: I am a developer on the Python Tools team, so you may I assume that I am correspondingly biased)
The other part of the company that has strong market pressure to be FOSS-friendly is Azure. If you want to compete with AWS and Google, you have let customers run things other than the usual 100% MS .NET/IIS/Windows stack, in various combinations - at the very least, people need Java and PHP (and more exotic stuff like Python and Node.js) for apps, and many also want Apache (or other server) rather than IIS, and Linux rather than Windows. Then they want the cloud service (storage etc) APIs to be available in those languages in client apps, as well.
On the other hand, I would be surprised to see a FOSS version of Windows or Office anytime soon - simply because most people buying and using it don't really care one way or another, so there's no incentive to strongly consider it.
Sure they do make (and mostly give away) some FOSS software, but it's very little and you really have to look for it.
ASP.NET, Entity Framework, and Rx are all non-trivial Open Source projects by Microsoft which I use daily at work. They are all under the Apache License 2.0, not one of those ridiculous "shared source" licenses. They make use of existing third-party Open Source libraries. They manage the projects in the open and accept contributions from non-Microsofties.
Additionally, Microsoft has embraced NuGet, a third-party dpkg/apt for .NET libraries which has thousands of projects in it. It's integrated into the latest Visual Studio, and Microsoft uses it as their primary distribution point for nearly all of their Open Source projects.
Microsoft has a pretty shitty history when it comes to Open Source, but they really have turned over a new leaf on the subject. I think they've come to realize that it's better to foster than to dictate -- you're still using their product (.NET) in the end, after all. Some purists won't be happy with that, I guess.
I see no evidence that .NET developers have an avoidance of open source. The linked article actually seems to present evidence to the contrary. Paraphrasing here:
Q: Why have .NET developers been slow to adopt open source?? .NET Framework community and based on my experience these shops are very cautious about incorporating open source libraries because the licensing...
PH: The open source movement is not incompatible with the Microsoft development world...commercial software developers represent a big constituency among the
So what they are really saying is that *commercial software developers* are hesitant to use open source because of licensing issues. That is probably true. That problem is not specific to Microsoft .NET developers, but spans languages and operating systems. That is very different from saying that .NET developers have not been averse to using open source. They use open source far more than their VB and C++/Windows API wielding predecessors. Here is a short list of open source projects I have used at commercial software companies off the top of my head:
log4net, sharpdevelop, nhibernate, nunit, nant, cruise control.net, all the Microsoft Patterns & Practices stuff, ninject, ...