Thursday, September 23, 2010

So Dave Newman announces he’s leaving .NET

Dave Newman recently announced that he’s leaving .NET for Ruby. Fine. But he’s giving a bunch of reasons that I strongly disagree with.

Dave thinks that the .NET community is “cut off from the world”, because he’s seen “developers build their own libraries and frameworks in curiously terrible ways”. Sure, fine. But is that a problem with .NET developers?

I’ve been around for a while now, and I’ve worked in .NET, C, C++ and Delphi. Yes, that Delphi, but that period of my life is over. I’ve worked as a freelancer for many years, and I’ve been in a lot of projects using a lot of different development tools and I can tell you this: it’s not a .NET problem. The problem is everywhere. In every project, in every company, there’s always a bunch of problems that need to be dealt with that could have been dealt with using some open-source library somewhere, code that was already written by someone else, but that just wasn’t good enough to do it. Joel has written good stuff in defense of not-invented-here syndrome.

In fact, I wouldn’t consider the phenomenon a problem as there may be very well good reasons why such a problem should be tackled in-house. Whether it’s a problem in such case depends on a lot of factors. But there you are, thinking that this .NET thing is over and that the community sucks and that the grass is greener on the other side. That’s a natural thing. The grass is always greener on the other side because you’re too far off to see how not so much greener it really is.

Dave goes on bashing ASP.NET MVC and how not open source it is because Microsoft doesn’t accept outside contributions. Well, check your facts, Dave. Accepting contributions is not a requirement of a project to be open-source. Some really high-profile open source products don’t accept outside contributions. qmail is such a nice example. Does that mean that no-one can contribute to qmail? Of course not. There’s patches everywhere! Will they work when/if qmail 2.0 comes out? That remains to be seen…

If you want, Dave, you can go and fork ASP.NET MVC yourself, set it up somewhere and start making and distributing your changes. In fact, that’s what you’re talking about when you mention someone setting up a github repository that is dead in the water. Oh, I’m sorry, can you expect from Microsoft to support every little fork out there?

So is Ruby very different?

Ruby, first of all, is a language. So it doesn’t really compare to ASP.NET MVC. You should actually compare it to C#, which has a much bigger community than just ASP.NET MVC. Ruby on Rails, on the other hand, compares much better than ASP.NET MVC, and is equally open source. If you go out and fork Ruby on Rails, will you expect to get support from the Ruby on Rails community? I don’t think so. And if you implement your own feature on top of it, will it be taken up upstream, garantueed? I don’t think so either. Not with David Heinemeier Hansson’s seal of approval. He likes to keep things tight, y’know?

Lastly,

To those who want to be part of a vibrant community of passionate developers crafting new and innovative solutions, start hanging out with people who aren’t tied to a particular language or framework.

says the man who just jumped ship to Ruby.

2 comments:

  1. If you go out and fork Ruby on Rails, will you expect to get support from the Ruby on Rails community? I don’t think so. And if you implement your own feature on top of it, will it be taken up upstream, garantueed? I don’t think so either.

    Dave,
    this is an index of contributors to Rails:

    http://contributors.rubyonrails.org/

    1682 people and counting (this is people, not patches). Compare that to the number of accepted contributions to MVC.

    For the record, I don't think this is the fault of anyone in the .NET community, and I'm pretty sure it's not a problem with licenses or being more or less open. I think it's a problem with the prevailing culture of the .NET ecosystem. It's up to people like you to change that culture, but denial is not going to buy you any progress.

    (Sorry if that sounds harsh - I use a mix a technologies, including .NET, and while I respect the community, I'm also frustrated by its culture.)

    ReplyDelete
  2. Paolo, thanks your contribution, and sorry it took so long to "moderate" the comment.

    ReplyDelete