Is Open Source an Anathema for .NET?

When .NET was first released Microsoft also released a subset of the .NET framework as Shared Source in the form of Rotor. Rumor is that the 2.0 version of Rotor will also be the last version of the .NET CLI released as source code to the developer community. Since that time, Microsoft has put in place an agreement with Novell and the Mono Project which allows for development of Mono to continue. Mono provides an open source version of the .NET framework and a runtime that is cross-platform compatible allowing for .NET applications to run on U/Linux and OS X as well as Windows.

Along with Mono, Novell sponsors several open source .NET applications based on Mono:

Banshee

Beagle

F-spot

iFolder

Monodevelop

The list does not end there and currently Jeff Atwood is accepting nominations for a $10,000 donation to a worthy .NET Open Source project. The contest has gained steam quickly with the list of open source .NET projects currently standing at 74 projects nominated. As to the impetus for the donation in Jeff's own words:

Why am I focusing on .NET open source projects? In short, because open source projects are treated as second-class citizens in the Microsoft ecosystem. Many highly popular open source projects have contributed so much to the .NET community, and they've gotten virtually no support at all from Microsoft in return. I'd like to see that change. In fact, I'll go even further-- I think it must change if Microsoft wants to survive as a vendor of development tools.

However, some feel Open Source cannot take hold in the .NET community due to the business model used by Microsoft and similar ISVs. Frans Bouma relates:

Open source doesn't need money to become solid, it needs attention. Just throwing money at open source is what MS is doing for years and it hasn't payed off. The reason for that is that the mentality of the average developer on MS platforms is that you simply pay for controls, libraries and tools and if you work on these products, you get payed.

THAT is what is lacking in the MS' ecosystem for open source. You can throw money at it, but that mentality won't change. One of the core reasons it won't change is because MS won't let it be changed: if it does change, their days are numbered.

Ted Dennison points out another issue when developing on the .NET platform and working on an Open Source project:

First off, are all the various .NET's licenses one has to agree to in order to work under the system GPL compatible? Microsoft has been known to craft EULAs with the specific purpose of making them GPL-incompatible. I'm guessing there's some way to do it, as a gcc-based Ada compiler has been ported (http://www.usafa.af.mil/df/dfcs/bios/mcc_html/a_sharp.cfm ). However, a quick search online indicates that the license associated with the Ajax controls, among others, is incompatible. According to http://en.wikipedia.org/wiki/List_of_software_licenses , the Ms-PL, Ms-CL, Ms-LPL, and Ms-LCL are all incompatible. I have to read every EULA very carefully to be sure I'm legal.

Phil Haack takes an interesting point of view in relation to using a proprietary stack to build an open source application:

I have the vacation view of Open Source. While I would love to be on vacation all the time, I’m pragmatic and I’ll take as much as I can get. Some vacation is better than no vacation.

Regardless of the definition of anathema one adheres to, Greek or Hebrew, if the past year is proof, the philosophies of Open Source are taking hold in the .NET community.

The .NET Queue, on behalf of InfoQ, would like to extend an offer to the .NET Open Source community. Let us know about your major release versions and we'll gladly post a product release announcement along with a review.

All great projects and products, all Free and open source. Yet I think people find it disheartening when Microsoft (who are still the keepers of .Net) basically pretend they don't exist, and go and create their own proprietary alternatives.

The people who invested time developing or even learning those tools feel cheated in some ways (because for many people, they will just default to using what comes in VS - just like IE is the dominant browser just because its the default for most PCs sold).

I think its a crying shame (I would love to be proven wrong), but its my take, and the reason why I stopped some time ago looking at .Net at all in my (increasingly rare) spare time.

I couldn't put this in the original post, but recall back in '97 when the Java Spec was owned by Sun. We all used the Blackdown version of Java for development on Linux, then ran the Sun JVM in production on Solaris. Then JSP came along and we all ran servlets or GNUJSP until Struts came along. Open source projects on Java were scarce back then.

The timing is not much different with .NET. However, one would hope the powers that be would understand and learn from others lessons, especially when it comes to Open Source.

Now _that_ is an interesting line of thought. If I get this right, Sun was more obsessive about owning and controlling Java when they actually made money from it, either from licensing Java itself or from selling their platform. As Java became ubiquitous, thus reducing the need to rely on Sun's platform; and as the community became so strong that OSS libraries competing with Sun's became de-facto standards, Sun felt more comfortable opening up, even to the point of going OSS. Was that so, and could history repeat itself for .NET?

InfoQ is broken up into communities or "queues". InfoQ = Information Queue, hence the name.

In this manner you can personalize the site to only see content from the communities or queues you sign up for. The left sidebar contains a box labled "Communities" where you can do this customization.

Ahh I see thanks. That's a fairly propriety use of the word "queue" eh? The implementation is nice though. At first I had only a few queues checked off. But after appreciating the lack of fanboyism in the writing at InfoQ, I went ahead and turned on Ruby and Java, even though I don't actually use those technologies.

Just adding NDoc to this list, where I would think that Microsoft has also a role to play in the fact that the developer basically could not be asked anymore to maintain that project. It is quite a shame that Nant has not been recognized and Microsoft actually wants to force us to use MSBuild. It is my sincere hope that Microsoft will shift its attitude somewehat such that I don't feel bad using Nant. To any Nant contributors out there: Thanks for the great job! Same goes to NUnit!