Will we ever get IronRuby on Rails?

Last weekend the ALT.NET Conf I had a couple opportunities to plead my case for Microsoft to embrace the Ruby on Rails framework and better enable it on IIS. I believe IronRuby will eventually run Rails, and I believe when it does the community will implement whatever hooks are required to run Rails using the DLR on IIS. But I want more. I want Microsoft to stand behind Rails and encourage its use. I want an "official" deployment story for Rails using IronRuby and IIS like the one Sun has with JRuby. I was able to discuss this with Scott Guthrie himself at the end of Scott Hanselman's DLR/MVC session, but I don't think I changed his mind at all. Sorry guys.

Half of the resistance seemed to be that Rails was too much of a fad and a moving target. I heard ScottGu say on a couple of occasions that prototype.js was really hot last year, but this year everyone is using jQuery. I also heard him say that last year everyone was all excited about RJS, but this year nobody is actually using it. The implication seemed to be that the Rails community couldn't make up its mind. But the reality is that the Rails community is having a conversation about how to build web apps better and it seems like Microsoft is either ignoring the conversation or blissfully ignorant of it. Neither is the case, obviously; but Microsoft has yet to join the conversation. In talking with ScottGu it became apparent to me exactly how well tuned in he is. He has obviously talked to enough Rails guys to have satisfied himself that Microsoft is making informed decisions.

The other half of the resistance to official support for "IronRails" is the giant mutex lock hanging around Rails' neck. The implication with this one was that as soon as the Rails team fixes the threading model, then Microsoft can have something to work with to get a performant Rails on IIS. I wish I had a good answer to this. The JRuby guys appear to be working hard on improving performance of Rails on JRuby, and having success. Can something similar be done for IronRuby on IIS?

The third half of the resistance to Rails was that the Rails community is simply not interested in running on Windows in any meaningful way. Its been historically hard to get support from the community for the SQL Server adapter in Rails, and there has been very little activity on getting Rails running on the new FastCGI ISAPI filter on IIS. I don't have a good answer for these things either. Personally, I don't have permissions to the web servers at my work; so I can't get FastCGI on the server because it isn't on the roadmap. But this is exactly why I want support via the DLR; so I don't have to have admin access to the server to deploy a Rails app because its all just .NET.

I disagree with ScottGu's view was that the Rails community isn't committed to running on Windows. I don't think that is it exactly; I think the Rails community isn't committed to running on IIS. Deploying Rails on IIS is more than just FastCGI; you also need a mod_rewrite replacement and there doesn't appear to be any free solution for that. Simply put, its too painful to deploy on IIS and its much easier to deploy on Apache. Rails devs are usually pragmatic folks, and will go with a working solution.

But personally, I really want to build Rails apps. And I'd hate to have to not be able to do that on Windows and .NET. I have very high hopes for the new ASP.NET MVC framework, but I'd also like a commitment from Microsoft to the Rails community similar to the commitment made to the Ruby community. And honestly, I think it would be in their best interest long term.

Published:
10.09.07 / 18PM
Updated:
10.12.07 / 23PM
Tags:
.net altnetconf ironruby rails ruby

6 comments

Chad Myers 10.09.07 / 19PM
What is it that you would have Microsoft do? Like ScottGu said during your questioning at ScottHans' presentation, should they fork the Rails code and iron-ize it? Right now it's not ready for prime-time. I think ScottGu hit the nail on the head: Until the Rails community shows interest in it, Microsoft isn't going to force them to do anything. Apparently you're in the minority of wanting to run Rails on Windows because otherwise the Rails community would've gotten it to the point where PHP and Python are. They tried to meet MSFT in the middle and MFST helped pick up the ball and run with it. But so far, the Rails folks haven't done anything and I'm sure any motions by Microsoft would seem predatory.

Chad Myers 10.09.07 / 20PM
One other thing, after re-reading your post. I think ScottGu was also clear that they're going to work towards getting Rails to work with IronRuby (among many other popular Ruby apps/modules). I think it'll just take time to get everything going. In the meantime, you can contribute to IronRuby and help speed things up if it means a lot to you :)

Mike Moore 10.09.07 / 20PM
I'm not asking for a specific solution. I'm asking for a commitment to making Rails run well on the DLR. I agree it would be "non-good" to fork Rails, but I think their are other options.

Chad Myers 10.10.07 / 08AM
Mike, I saw that MSFT just released a new version of FastCGI for IIS 5, 6, and 7. If you frequent any Rails communities, you might mention this and maybe get someone interested in getting Rails working with FastCGI????

Mike Moore 10.10.07 / 09AM

Like I said in my post, Rails works fine with FastCGI, but IIS is still missing a mod_rewrite equivalent. That makes Rails on IIS (not Windows) more difficult, because the tools just aren't there to run Rails out-of-the-box. IIS7 will get us much closer though.

Here are some articles that help getting MRI Ruby on Rails running on IIS:


IronRuby 10.11.07 / 05AM
It seems MS is in aggressive mood to support PHP on Windows with Fast CGI and IIS 7.0 MS and Zend are doing a great work together. As per recent announcement made today, they have released CTP for SQL 2005 driver for PHP. As a net developer we are already getting best of Rails support on IronRuby, + NEW MVC which obviously supports IIS. The real losers are rails community and not the IronRuby developers.