Will we ever get IronRuby on Rails?10 Oct 2007
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.