InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Is Open Source an Anathema for .NET?

Posted by James Vastbinder on Jul 09, 2007

Sections
Architecture & Design,
Development,
Operations & Infrastructure
Topics
.NET ,
Open Source ,
.NET Framework
Tags
OSS ,
Microsoft
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. 
What about Nant, NUnit and CC.net? by Michael Neale Posted
Re: What about Nant, NUnit and CC.net? by F Quednau Posted
A few additional thoughts by James Vastbinder Posted
Re: A few additional thoughts by Stefan Wenig Posted
What is the ".NET Queue"? by John DeHope Posted
Re: What is the by James Vastbinder Posted
Re: What is the by John DeHope Posted
Re: What is the by James Vastbinder Posted
Another thought by Arnon Rotem-Gal-Oz Posted
  1. Back to top

    What about Nant, NUnit and CC.net?

    by Michael Neale

    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.

  2. Back to top

    A few additional thoughts

    by James Vastbinder

    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.

  3. Back to top

    Re: A few additional thoughts

    by Stefan Wenig

    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?

  4. Back to top

    What is the ".NET Queue"?

    by John DeHope

    I was just curious what the .NET Queue is?

  5. Back to top

    Re: What is the

    by James Vastbinder

    John,

    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.

  6. Back to top

    Another thought

    by Arnon Rotem-Gal-Oz

    I think Mats Helander has an interesting take on this in a blog post called Is MS the apple of application development

  7. Back to top

    Re: What is the

    by John DeHope

    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.

  8. Back to top

    Re: What is the

    by James Vastbinder

    John,

    Thanks for the endorsement of the InfoQ editorial style, the more vocal our readership is, the better the editors can make the site.

  9. Back to top

    Re: What about Nant, NUnit and CC.net?

    by F Quednau

    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!

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.