I’ll probably just keep updating this post as I run across more things. It’s ostensibly as a comparison to ASP.NET 3.5 with the upcoming extensions.
Good things / Pros
- Actually a ActiveRecord thing, so it can be used outside of Rails easily enough (gem install activerecord). It’s a great way of tracking changes to schemas and codifying how to upgrade/downgrade between schemas.
- rake, and the built-in rake tasks
- lots of useful things in the box, including things like db:create/db:reset.
- MVC architecture
- Definitely not unique to Rails, but it generates a lot of the right kinds of structure for you, keeping you from having to consciously/forcefully implement MVC yourself – it makes the easiest thing to do the right thing to do, especially with the scripts it comes with.
- Comes with script.aculo.us, prototype, etc
- Behavior Driven Development, indeed. It’s a great way to describe code behavior, and it’s a nice higher-level way to work about normal unit tests.
- While you can do ASP.NET on Mono to be sure, it’s not the “supported standard” like Windows is, while Rails (and Ruby, obviously) works as well on my Linux machine (and obviously on OSX) as it does on Windows.
Bad things / Cons
- the editor of choice for Rails developers is clearly TextMate. However, there’s a lack of a good (sorry, but Visual Studio-level) IDE. Aptana (built on Eclipse) comes the closest from what I’ve seen so far, but the debugging and editing experience there still leaves a bit to be desired – it’s far short of Eclipse for Java or even Visual Studio for C#/VB. I’m toggling between Aptana for debug-type work and vim-ruby / rails.vim / cream for more mainstream editing (couldn’t get rubycomplete to act right for me).
- It’s clear from the DLR / Silverlight / IronPython / IronRuby / etc work that you can target ASP.NET with more than just a single language now, and more languages are likely on the way. C# and VB are still likely to be the first-class citizens for awhile, but there’s at least a choice. Don’t get me wrong, I like Ruby a lot, but if you happen to have a team that’s not got a lot of Ruby experience and you don’t want to take the training and learning-curve hit, Rails is off the table.
- Out-of-the-box scaffolding
- Rails has had this for ages, but it’s clear that ASP.NET 3.5 extensions is looking to fill the gap, especially with the new Dynamic Data web site option.
- Don’t need to recompile
- Like with JSP, ASP.NET automatically recompiles any parts needed (.aspx files, whatever) on the next request as needed. I’m not going to penalize Ruby for being interpreted here, since my target isn’t really deployment per se, but development.