With the recent "high profile" exit of Jimmy Schementi from Microsoft, IronRuby looks to be in trouble. At least it looks to be in danger of being "put down" from a Microsoft resources perspective. If you’ve been following my blog for a while you’ll know that I am a fan of the Ruby language, and I love the fact that we now have a working Ruby implementation on the .NET platform. It really does give us a great dynamic language to add into our arsenal, and I hear occasionally about IronRuby and IronPython both being used as scripting solutions within .NET applications.
Yep, that’s right. Scripting solutions. You know why? Because if you want to write applications entirely in Ruby or Python, you probably aren’t writing on the Windows platform. Native Ruby runs just fine on Windows. So if you aren’t interoping with .NET code, then why would you run IronRuby? Honestly, there aren’t many good reasons.
Ruby and Windows, BFFs?
So, was Ruby good for the .NET platform? Was it a match made in heaven or hell? I’ve heard many people making comments in both directions. Some making claims that IronRuby was made to bring Ruby programmers to the Microsoft platform, and the other side making claims that it was to keep .NET developers from leaving the Microsoft platform. Somehow I doubt that either of these scenarios is very likely.
IronRuby attracting Ruby developers to the Windows platform? Well, that seems like a snowballs chance in hell. These guys are big Mac/Linux guys who are rabidly allergic to anything with Microsoft’s name on it. I know I am generalizing, but if anyone ever thought that they would get Ruby developers over to the Microsoft platform with IronRuby, they were deluding themselves.
As far as IronRuby keeping Microsoft developers on the Windows platform? Hmmm, that is just as ridiculous. If you want to write full applications in Ruby, and therefore *probably* Ruby on Rails… you are looking at a platform that is entirely built around the Mac/Linux world. Microsoft could spend all the resources they had and never get within sight of Mac/Linux as a first class Ruby on Rails platform. The community support just wouldn’t be there, and in the Ruby and Rails world, the community basically all you have. (And that isn’t a bad thing!)
At the same time I’ve also heard some people say that IronRuby was a gateway to leaving the Microsoft platform. Bah, I don’t buy this for a second. If people leave the Microsoft platform for Ruby or Python, I highly doubt that it was IronRuby or IronPython that pushed them over the edge. It was more likely that they saw another development platform that appealed to the way that they wanted to build software. And if that platform was Ruby or Python, then they realized that they needed to move to a platform that was first class citizen for those languages.
I’m sure it is possible that someone tried IronRuby without ever having heard of Ruby before, and then went on to find Ruby on Rails… but they must not use the internet very often. I think that most .NET developers that have any chance of jumping platforms (and by that I mean they actually WANT TO LEARN) have already heard a ton about Ruby and Rails. They have already explored it and made their own decisions. Ruby and Rails were around for a looooooooooooong time before IronRuby came along.
Nothing Nefarious Going On Here
In the end, it seems to me that Microsoft was doing what it tries its hardest to do. To give .NET developers the tools they need to do their job. I’m not saying that their efforts are always the best, or that they aren’t occasionally misguided, but I think in this case people really are reading a lot more into this than they should. Microsoft implemented IronRuby on the .NET platform, didn’t push it at all, didn’t provide any sort of tool support, didn’t ship it with VS2010, and then when they see that it isn’t going anywhere, they cut resources on the project. Sounds like a classic case of Hanlon’s razor to me.
Oh, and just so I’m clear, I’m a bit pissed off that Microsoft is pulling back its support for IronRuby. But the truth is that if the Microsoft community needs/wants IronRuby, then it will grow as an open source project. If however there isn’t demand on the Microsoft platform for it, then natural selection will claim another victim.
Loved the article? Hated it? Didn’t even read it?
We’d love to hear from you.
Well thought out post. What your saying makes sense. This and other recent offerings by Microsoft will have those who were already thinking about leaving, move over to ruby/python. It’s more about the message being sent with killing the iron languages (DLR just for silverlight?) and a introducing more visual/starter tools like webmatrix/lightswitch.
Also the fact that running the .net stack for a personal/OSS project can be a costly one. I think Microsoft is wise for not trying to fight with OSS/Ruby. They would lose.
Long live IronJS! 🙂
All good points. I never thought IronRuby would attract developers, there is no compelling reason.
I will find it hard to believe that IR will live on as an OSS project. My understanding of some of the complexities of IR is the DLR integration and those parts NOT being open source. This will hinder development of future versions of IR. Maybe if that part of the project is pulled and then just a plain Ruby implementation could be built BUT that is not attractive as MRI is very good on Windows. I say IR dies off and is just a memory.
@Rob Unfortunately, without some Microsoft support, I tend to agree. Most of the other Ruby implementations have some level of corporate sponsorship. The .NET community just isn’t there yet with corporations sponsoring and supporting open source projects. I genuinely hope I am wrong.
Microsoft has been surprisingly bad at soliciting help from the Ruby community. They have held their design decisions behind the corporate curtain and have had very little outreach to folks that would like to help.
I’m really sad to see IronRuby fall apart, but I can’t say I’m surprised. I wish it would have turned out differently.
Is Microsoft’s support for F# being similarly effected?
@Greg Nope, the F# team is completely separate from the IronRuby and other DLR teams. Since it isn’t dynamic. Plus it is a homegrown language for Microsoft, which puts it on a different footing.
I would think that iron ruby would be more about building .net as a platform rather than winning any language wars.
I’ve worked across Java, C# and now Ruby in both enterprise and start up environments and having multiple options on a platform is always a good thing.
In my current job at a rails startup, we drop into java all the time to do our heavy lifting. I’d rather be using C# since it’s a nicer language to code in than java and still has some good performance characteristics, but due to closed nature of the microsoft ecosystem, it’s just not an issue.
MS has recently being trying to woo startups with cheaper licensing, but frankly, their ecosystem is pretty stacked against small software teams when compared with other platforms. Given how many startups are using python and ruby these days, I think MS is losing out on a market here, as todays startups are the companies that are going be the next twitters and facebooks.
Beyond that, ruby has a bunch of great frameworks that help reduce a lot of the overhead associated with building webapps. dotnet as a platform is definitely poorer without them, given that MS only needs to provide a viable runtime in order to take advantage of them…surely there’s a cost benefit there.
All in all, I think MS is being a bit shortsighted here…once upon a time it was all about who controls the platform, controls the game…more options to build both windows server and dot net as a platform would be beneficial to anyone making any kind of IT buying decisions…it seems to me that their middle management has a great knack for shutting down any innovative and interesting software that their engineers put together…definitely glad I sold my stock years ago.
Leave a comment