I have worked professionally with Ruby on Rails for the past 4 years and definitely consider myself a part of the Ruby community. Before that, however, I was a .NET consultant for many years – in fact I worked with .NET from the early betas and I was very exited about replacing VBScript and classic ASP with C# and ASP.NET. Being at MIX 10 – Microsoft’s conference for developers and designers working with web and mobile technologies – has made me realize both how much the .NET community has changed since I left it – and how much it hasn’t. In this article I outline the differences in culture in the Ruby and .NET development communities as I perceive them, and voice my opinion on what could be changed.
I have a good friend named Oliver Kofoed who is a brilliant .NET developer. Oliver is an entrepreneur and has written the entire backend for Nonoba and Player IO, he has written his own object-relational mapper (ORM), templating system, multiplayer game server, content management system and so on. He has also been toying with several experimental .NET languages over the years (such as Boo) and even worked a bit on one of his own. Oliver is both curious and passionate about development, and he was in fact the one who initially told me about Ruby on Rails – I owe you one, Oliver ;)
I occasionally nudge Oliver about releasing some of his work as open source, but it has yet to happen. I don’t think Oliver mind sharing his stuff with the community, but the fact is that it takes a lot of work to prepare your code for open sourcing, especially if you haven’t build it with that in mind from the beginning. You need to take anything out that’s specific to your own applications, you have to write at least some documentation and you probably also have to make the code a bit more configurable and modular. To make that effort you need to get something in return from the community – you have to be reasonably sure that your efforts will be appreciated and that your peers will respect you for sharing valuable code with them.
The best way to get a name in the Ruby community is to release a piece of open source software that help other people get their work done. Ruby on Rails is a pretty good example of this. In fact, in a typical stack for running a Rails-based website, not a single piece of software is proprietary. From the operating system and programming language, the database and the web server to the web framework, gems and plugins used in the application, everything is free and open source. To be fair, the .NET framework is also free, limited versions of the development IDEs and the SQL server database are free and I believe it is currently even possible to get free hosting on Windows Azure. But none of these things are open source and that makes an important difference in the perception of the importance of open sourcing in the eyes of .NET developers, I believe. When most of your stack is closed source, you don’t see the need to share your own source with anyone else either.
There is of course lots of great open source projects within the .NET community: NUnit, Log4Net, NAnt, NHibernate (I’m not sure why I can only think of ports of open source Java projects right now) and also some great “higher-level” open source projects such as Umbraco. Many of these has existed for a long time, but it’s a relatively new thing that Microsoft has started releasing parts of their own projects as open source with ASP.NET MVC – a web framework that’s essentially a port of Ruby on Rails (minus the ActiveRecord ORM) to .NET done by some of Microsoft’s best developers – as the prime example. This is awesome, and ASP.NET MVC is deservingly winning a lot .NET developers over from the broken notion of “web forms”. I’m not sure how easy it is to build and share plugins for ASP.NET MVC, but hopefully the project will help more .NET developers to realize the value of sharing code. In the Ruby world we have Github for sharing and collaborating on open source projects, and Codeplex might be able to do the same for .NET – or .NET developers could start using git, but that’s a different story.
ASP.NET MVC also endorses test-driven development, which is another key differentiator when comparing the Ruby and .NET communities. To be honest, I think some .NET developers have even harder seeing the value of testing than of open sourcing. They use a static language after all, so the compiler “tests” that all is good, right? Wrong. Even without tests, problems with wrong types and nil-reference exceptions (“null” is called “nil” in Ruby) are usually easily found and fixed in Ruby. What needs to be tested is intend. Business logic. Calculations. Complicated SQL queries. Redirects. The flow of the application. Test-driven development (TDD) forces the developer to think before he acts, and later it gives him the freedom to refactor without the fear of breaking existing functionality. I understand any developer who feel it is a waste of time to write tests after you have written the actual production code – it’s not, but it feels like it. TDD gives the pleasure of accomplishing hundreds of small steps in the fail-pass test cycle every day, and I hope the popularity of the ASP.NET MVC will push .NET developers more in this direction.
I have of course attended all sessions related to Ruby at MIX10 (all three of them), and Microsoft’s prime example of what to use IronRuby (the .NET implementation of Ruby) for seems to be testing. They love to show off RSpec and Cucumber, and yes, those are cool testing frameworks, but will it really make .NET developers write their test code in a language different from the production code? To me, IronRuby is the .NET developer’s chance to spread the love and magic of Ruby in their Microsoft-centric companies, and just like Rails has been the killer app for the traditional C-version of Ruby, I believe this fantastic web framework can also be the driver of a wide adoption of IronRuby. ASP.NET MVC will be the segway for this, because MVC and Rails have so much in common, that when you understand one, you understand them both – provided you also know C# and Ruby, that is.
Yes, I said “the love and magic of Ruby”. If you think it sounds cheesy, that’s because it is, but the fact is that I’ve seen several slides at MIX10 with statements such as “Ruby is love” and “We love Ruby on Rails”. Ruby is a pretty programming language, and Rails is an awesome framework – but really working with Ruby is all about being passionate about programming, being curious about new technology and have a desire to be on the “cutting edge”. I’m not saying that .NET developers are not those things, but I’ll make this claim: The ratio of highly passionate developers actively seeking the cutting edge of software development is higher in the Ruby community than in the .NET community. There is some very simple reasons for this: First of all, the Ruby community is smaller and has a smaller customer base, which leaves less room for … let’s say “average” developers. Second, almost everyone in the Ruby community comes from a different technical background and has made an active choice to switch to Ruby. C# is a language taught in schools, there are certifications and programs, and in some environments I believe you’d hardly even consider the alternatives. This again leaves more room for the “average” developer who is by no means a bad programmer or person, but who is not building and seeking out new things on the cutting edge. To him, programming is more a job than a passion, and he might even do something else with his spare time than sit in front of the computer.
The point I am trying to make is this: Ruby has a community consisting almost entirely of early adopters, while .NET has many followers in the community. This is not necessarily a problem – in fact it can be very pragmatic not to be on the cutting edge. On the other hand, .NET developers are missing out on a lot of the good stuff by waiting for Microsoft to tell them what to do. As an example, my impression from MIX10 is that the javascript framework jQuery is still a very new thing to many .NET developers, while it is something we have used for years in the Ruby community. I was learning about jQuery at a Rails-conference two years ago, and back then I felt I was late in the game. What’s interesting is that Ruby on Rails is in fact pretty tightly integrated with another javascript framework – Prototype (much too tightly in fact, but that has been remedied in Rails 3) – but we were so blown away by the productivity and community surrounding jQuery that we switched anyway. The fact that Rails is open source and that Ruby is a dynamic language that allows any code to be changed, overridden and monkeypatched, allowed someone to quickly release a plugin that modified all places where Rails currently generates Prototype-specific javascript. Sure, ASP.NET MVC is also open source, but if someone wanted to make a fundemental change such as the one in this example, they would probably have to release a separate branch of the framework the with modified code, since a plugin wouldn’t be able to modify the statically typed and compiled code.
The Ruby community is not perfect. Some think we are arrogant. I can think of at least one person about which this is true, and perhaps you think I’m another good example after having read this. I am actually impressed with how humble and down-to-earth the VIP’s of the .NET community seemed to at MIX10. Another thing you could say about us is that we are trying to avoid dealing with real-world problems by going into Ruby. We leave the .NET developers to maintain and extend existing enterprise solutions built on Microsoft technology, while we go out and build entrepreneurial web apps from scratch. Personally, I like being curious, passionate and on the cutting edge, but it might not be for everyone. Are you a passionate developer?
Hello, I'm Casper Fabricius. I have developed for the web for 9 years, and have been enjoying Ruby on Rails for the past 4.
My experience covers communities, shopping solutions, multi-language sites, heavy back-end lifting and a wide selection of more traditional websites. I like to integrate Ruby with Java and .NET through JRuby and IronRuby when it makes sense. I am passionate about test- and behavior-driven development, but at the same time I am pragmatic and believe in getting things done.
I am based in Copenhagen, Denmark, but I take assignments from across the globe. Feel free to study my resumé, featured projects and - of course - to hire me.
buy paxil canada
buy viagra without a prescription
cheap levitra online
cheap discount soma
buy viagra pharmacy online
cheap discount levitra online
premarin
buy viagra now online
buy legal fda approved viagra
cheaper viagra levitra cyalis
buy medved viagra
discount viagra brand drug
discount viagra in the usa
buy viagra softtabs
buy viagra on line
buy cheap generic viagra
buy online viagra securely
buy viagra next day delivery
cheap online pill viagra
buy lasix
viagra canada prescription
viagra and cialis and
buy discount zoloft
cheap crestor online
buy buy cheap viagra
cheapest price for viagra
cheap pill viagra
buy sildenafil viagra
buy in online uk viagra
cheap cialis viagra
cheap drug retin viagra wellbutrin
order viagra licensed pharmacies online
buy viagra from brazil
cheapsest viagra online
cheap order prescription viagra
buy form generic viagra
buy viagra at safeway
cheap deal discount viagra viagra
cheapest viagra online in the uk
cheapest viagra uk
buy hgh now
buy crestor now
buy viagra in the philippines
buy generic online viagra
cheapest online viagra
order forms for buying viagra
cheapest generic silagra viagra
buy caverta
buy cheap cialis
buy now online viagra
buy cialis canada
buy viagra online 350
order prescription viagra
discount viagra sale
buy viagra from an online pharmacy
order generic viagra
cheap cheap viagra
cheap cheap herbal viagra viagra viagra
viagra by mail order
buy viagra low cost
order viagra usa
cialis 32
buy cheap soma
buy viagra cialis
cheapest viagra in uk cheap
buy online online pill viagra viagra
buy internet viagra
cheap online pharmacy viagra viagra
buy cheap discount levitra
cheap online purchase viagra
buy viagra onlines
buy real viagra pharmacy online
cheapest cialis
buy viagra and cilas usa
buy viagra online order
over the counter viagra in europe
cheap viagra online uk
viagra bullshit
buy viagra online 35008 buy
buy drug satellite tv viagra
viagra breathing
cheap generic india viagra
buy discount viagra online
cialis 1
buy crestor online
discount viagra cialis
buy viagra meds online
buy viagra ups
buy online viagra viagra
soma online
buy generic viagra online pharmacy online
buy viagra online without prescription
cheap viagra kamagra
cheap quality viagra
cheep viagra from indea
buy viagra inte
buy viagra online u
order viagra on line
buy pharmaceutical viagra
viagra and discovery
buy viagra levitra alternative lavitra
cheapest in uk viagra
buy herbal viagra
order viagra onlines
viagra buying online
buy viagra and overseas
buy cheap viagra on the net
cheapest brand viagra
cheap levitra online
buy hgh canada
buy cheap deal pill viagra
order viagra buying viagr
buy plavix
discount viagra generic
viagra buy viagra
buy viagra for cheap
buy viagra in england
buy deal herbal viagra viagra
cheap referrers total viagra
buy cheap cialis generic levitra viagra
order site viagra
cheapest viagra us pharmacy
buy viagra online australia
buy viagra for women
buy kamagra
discount viagra mastercard
cheap discount viagra
cheep generic viagra
buy isoptin
cheap viagra discount viagra buy viagra
buy cialis without prescription
cheap viagra uk
cheapest viagra world
discount viagra viagra
buy viagra in the uk
buy viagra per pill
discount viagra or cialis
cheap overnight viagra
buy viagra now
discount viagra drug
buy lipitor
order order viagra
buy viagra order viagra
discount viagra offers
buy p viagra
cheap kamagra uk viagra
cheapest viagra online plus zenegra
cheap viagra 25mg
buy viagra without prescription
buy in uk viagra
buy generic viagra pharmacy online
buy levitra viagra online
cheap molde ticket viagra
cheapest price viagra
cheapest viagra us licensed pharmacies
viagra and coupon
buy viagra viagra online
order viagra with mastercard
cheap no prescription viagra
cialis online
buy viagra online web meds
viagra buy uk
cheapest price for viagra and cialis
viagra and cialis cheap
generic soma
buy cheao cgeap kamagra uk viagra
buy levitra online viagra
buy prescription viagra without
buy viagra no prescription
buy cheapest online place viagra
buy viagra online online pharmacy
purchase levitra
buy levitra now
purchase levitra online
order levitra online
cheap viagra no presrciption 50mg
buy viagra where
buy online p viagra
buy online purchase viagra
buy viagra 100mg
cheapest generic viagra caverta veega
buy cheap viagra 32
buy online viagra in the uk
viagra by mail
purchase tramadol online
discount viagra prescription drug
buy cheap site viagra
buy viagra zenegra
buy softtabs viagra
over the counter viagra substitute
order viagra online consumer rx
cheap levitra viagra href foro forum
viagra buy it
buy cheap crestor
buy viagra or cilas
order mexican viagra
buy now viagra
buy crestor
buy viagra australia
cheap mexico viagra
buy viagra online india
order viagra online a href
cheap viagra canada
cheapest generic viagra and cialis
buy viagra online no prescription
cialis 20mg
allegra d
cheap deal pill pill viagra
buy viagra online now buy viagra
viagra buy now pay later
buy lexapro
buy viagra alternative
cheap phizer viagra
viagra buy in uk online
order crestor
cheap drug online prescription viagra
generic zoloft
imitrex
buy deal deal price viagra
buy viagra in uk
viagra and deafness
buy viagra cheap through online sales
cheap prescription viagra without
cheap viagra in uk
buy viagra 32
cheap testosterone viagra href foro
buy keyword viagra
order zoloft online
cheap generic viagra substitutes
buy discount soma
buy viagra contact us page
buy canada viagra
buy viagra in mexico
buy australian viagra
cheapest line viagra
order discount viagra
cheap pharmaceutical viagra
order 50mg viagra
viagra buy contest
buy levitra
buy viagra online discount
tramadol cod
cheapest generic viagra and cialis pills
buy viagra online alternative viagra
order crestor online
buy viagra over the counter
buy dot phentermine viagra
buy deal viagra
cheap online generic viagra
buy online sale viagra
buy viagra cheap fed ex
buy avandia
buy glucophage
buy viagra in spain
cheapest prices on generic viagra
buy non prescription generic viagra paypal
zoloft online
cheap meltabs viagra
buy cheap discount lexapro
order viagra softtabs
buy viagra buy cheap viagra index
buy cipro
cheap genric viagra online
generic levitra
buy viagra toronto
cheaper viagra
buy depakote
buy free viagra viagra
buy cheap uk viagra
viagra buy general
cheap viagra cialis
cheap discount soma online
cheap generic viagra from usa
purchase crestor online
buy cheap discount pill viagra viagra
seroquel
cheapest viagra on line
buy viagra safeway pharmacy
buy cheap viagra online uk
cheap soft tab viagra
order status viagra
cheap testosterone viagra href foro forum
cheap drugs viagra cialas
buy now soma
buy crestor
cheap discount cialis
order pfizer viagra with mastercard
cheap viagra credit
cheapest generic substitute viagra
viagra buy australia
cheap viagra online order viagra now
buy viagra in bangkok
buy viagra over the counter us
buy cheap viagra online now uk
buy cheap purchase uk viagra
cheapest viagra and regalis
cheapest generic viagra 99 cents
buy cailis viagra singapore
cheapest viagra prices uk
cheap crestor
purchase crestor
order viagra prescription
viagra and flomax
buy followup post viagra
buy generic viagra online
buy online online viagra viagra
viagra buy
purchase paxil online
order viagra now
cheap viagra
buy carisoprodol no prescription
purchase nexium online
order viagra online in wisconsin
buy in spain viagra
cheap viagra index
over the counter viagra alternative
buy sublingual viagra on the internet
buy imitrex
order viagra overnight shipping
cheap viagra online prescription
buy cheap p viagra
buy viagra with paypal
viagra canada price
buy viagra line
cheap cheap viagra viagra
buy viagra in london
viagra by money order
discount viagra overseas
viagra by phone
buy viagra in toronto
buy cheap levitra
cheapest place to buy viagra online
check generic order pay viagra
buy uk viagra
cheap viagra from pfizer
buy online pill viagra
buy generic viagra si br
buy pill price price viagra
buy generic viagra usa
cheap gerneric viagra
buy cheap online prescription viagra
cheaper viagra levitra apcalis
buy cheap viagra online here
buy viagra phentermine online pharmacy
buy discount price sale viagra viagra
buy discount crestor
buy viagra online cheap
viagra buy do nu
buy viagra by pill
over the counter viagra
buy cheap viagra online now
buy evista
cheap herbal sale viagra viagra
buy cheap lexapro
buy viagra online 35008 buy viagra
buy viagra without prescription pharmacy online
lexapro side effects
buy cheap free online viagra viagra
buy cheapest viagra
cheap discount levitra
cipro 20
cheap viagra fast shipping
relafen
buy online prescription viagra without
buy can reply viagra
buy site viagra
cheap deal viagra
buy online order viagra
cheapest uk supplier viagra
buy viagra in amsterdam
cheapest viagra in uk che
buy cheap sale viagra
order viagra online no rx prescription
buy soma
discount viagra
buy diet viagra online
buy neurontin
buy viagra new york
buy now hgh
cheap discount crestor online
buy online viagra viagra viagra
cheap paxil online
buy levitra canada
buy prescription viagra
discount viagra perscription drug
cheap herbal viagra viagra viagra
buy cheap online uk viagra
buy viagra in united kingdom
buy cheap viagra viagra
buy coumadin
viagra and cialas
cheapest viagra on the internet
cheap discount crestor
cheapest generic viagra sent overnight
buy viagra online get prescription
buy locally viagra
viagra by mail catalog
cheapest viagra overnight
uberVU - social comments
March 19th, 2010 at 10:42 am
Social comments and analytics for this post…
This post was mentioned on Twitter by fabricius: The culture of development communities: Ruby vs. .NET http://ff.im/-hLKVw...
Norman Close
March 19th, 2010 at 11:03 am
A very insightful and objective post which I really enjoyed reading. It including a lot of things that I had not really thought of before.
As a .NET developer who has had some exposure to the Ruby and Rails it certainly is quite different. I suppose in some ways it is inevitable that .NET tends more to a follower based approach and being a little less innovative.
I thinking you summed it up will with “The ratio of highly passionate developers actively seeking the cutting edge of software development are higher in the Ruby community than in the .NET community”.
hartvig
March 19th, 2010 at 4:07 pm
Great post! I think there’s more edge developers in the .NET community than you credit it for, most likely because it’s harder to see them due to the huge amount of bread-and-butter devs found.
Like you credit Rails for giving up on prototype, you could also easily give MS credit too in the way they’re pushing jQuery despite their big earlier investment in their own js framework (ASP.NET AJAX).
There’s also plenty of .NET OSS projects on GitHub – for instance the wonderful IoC framework Ninject.
And oh – Umbraco (which btw is located at umbraco.ORG not .COM ;-)) are adding full support for IronRuby in v4.1 coming within weeks – we’re crossing fingers that it’ll help adopt the wonderful language =)
As you say – much have changed over the last couple of years and it’s easy to enjoy working on the .NET platform and find passionate people. Come to my Umbraco CodeGarden conference in June (I’ll give you a free ticket) and you’ll at least find 250 of them ;-)
/n
Troels Liebe Bentsen
March 20th, 2010 at 12:31 am
Looking at communities a couple of years ago through the narrow window of web development might have given you the impression that some “language cultures” are more cutting edge than others.
But today you will find pretty much the same Web 2.0 stack in any language you can think of, the syntax might be a little different but the philosophy and techniques are the same. eg. Symfony, Grails, Django, Catalyst, etc. And most of the projects are not that much younger than Ruby on Rails. So it might seem to suggest that what really differs is the loudness/hype rather than actual technical difference.
Moving away for web development Ruby also quickly seems to fade when it come to active development and cutting edge, here “old” languages like C, C++, Objective-C, Java and C# make up a large portion of the interesting stuff being developed, just look at some of the Open Source desktop projects, the mono project, android, object db’s like facebooks Cassandra or many of the other projects that litter source forge, github and google code.
Also as communities borrow the cool “cutting edge” stuff from each other, programming language matters less and less as the same frameworks appear in J-versions, N-versions and more fancy-named alternatives in each language.
So for me at least cutting edge has very little to do with language, OS, software stack or how many times you can sneak social, web 2.0 or restfull in to the description of your new web app. What does matter is how novel and different the thing you are trying to build is, not what tools you use.
Casper Fabricius
March 21st, 2010 at 1:00 am
@Norman: Thanks a lot for your comment. I don’t know about objective, but I try to be fair at least :) What sums it up best for me, though, is this sentence: “NET developers are missing out on a lot of the good stuff by waiting for Microsoft to tell them what to do.”
@Hartvig: Thanks. I’m glad to hear so much good stuff is going on in the .NET community. I’ve heard many good things about Umbraco, and IronRuby support sounds awesome – I’ve also fixed the link, sorry about that ;) Umbraco CodeGarden sounds cool – I’ll mail you :)
@Troels: I agree with a lot of your points, and you are right that Ruby – as a slow, interpreted scripting langauge – are not being used much for non-web development. I don’t think web development is a “narrow window”, though – everything is flowing together these days; desktop, mobile, gaming and web are all intermingled. You are absolutely right that what you build matters much more than the tools you use, but try and say that to a .NET developer – I don’t think many of them will touch e.g. IronRuby before it’s supported in Visual Studio ;)
Jesper
March 21st, 2010 at 1:25 am
Very good points, and I think you’re right in your characterization of both cultures. Of course there are exceptions in .NET-land, but none that really gain enough traction to become the big killer app that everyone knows about in the way that Rails is for Ruby. Not because such projects are not developed, but because the community as a whole isn’t really paying attention to them.
For a project/library/framework to really become mainstream in .NET, it pretty much has to be released by Microsoft.
Like Casper said, .NET supports a huge number of languages, but the only ones that the mainstream developers use are the ones supported directly by Visual Studio. Anyone could have used a MVC framework for their web development projects, but it didn’t actually take off and become commonplace until Microsoft released ASP.NET MVC.
Individual .NET developers might be every bit as passionate and curious as Ruby developers, but they’re not the ones defining the .NET community as a whole.
Troels Liebe Bentsen
March 22nd, 2010 at 12:14 am
I think the “conservatism” you see in the .NET community can be found in all language communities. Try asking a Rails developer if PHP, Java or Python might have been a better base for that new CMS/Social website he/she is building or even just another MVC for Ruby, and you will hear a long list of technical reasons for why PHP is the worst language ever invented, how coding Java slows development and kills creativity and how Python ugly and horrible syntax makes it a pain to code, etc.
Much of it might be true from that developers point of view, but the fact is PHP, Java and Python have been the tools of choice for most of the big and innovative web successes. fx. MySpace, Facebook, everything Google, Wikipedia, etc.
But does that mean you have to code in PHP, Java or Python to write innovative web apps? At least i don’t think so, most of the common used dynamic languages are very similar in concept and ability and the same is true for the typed ones. So i would argue that most of these sites could have been written in pretty much any language and what makes the special was a good idea, timing and a good bit of luck.
So suggesting you can measure “cutting edge” by language choice seems a bit off to me, unless you suddenly start to code Perl 6, Google go, Scala or some of the newer languages that try to change the concepts or how we code I don’t think you can claim language as the reason for being “cutting edge”.
My point about web development as a “narrow window” is in relation to the front end focus most web developers have. For example looking at Rails sites like Github and Twitter; is it because of Rails both sites “innovated” in their field? For me in both cases what makes them special is the back end, Github would be quite useless without git and so would Twitter without a good message queue(written in Scala).
Front end web development is as mainstream as it gets, pretty much all languages have a frameworks with MVC, ORM, AJAX, etc. So ruby or C# does not really make that much of a difference in how things are built.
So for me at least back end, mobile platforms and development tools is where you can be cutting edge today.