Pros/Cons with Rails

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

  • Migrations
    • 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, prototype, etc
    • Also not unique to Rails, but it’s nice to come with excellent client javascript libraries that make things like ajax updates and DOM manipulation so simple.
  • RSpec
    • 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.
  • Console
    • Based on irb, it lets you interact with your project via the command-line and that makes life very nice for doing some isolated ad-hoc testing.  Just ask Amy.  I have to agree – the sandbox mode alone is Freakin’ Sweet!  Check the mix tape for additional love.
  • Cross-platform
    • 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

  • No “great” IDE as of yet
    • 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).
  • No “great” WYSIWYG view editing
    • I haven’t found anything yet that gives the kind of split-view development I get when creating ASP.NET apps with VS2008, especially with the built-in CSS, html,, and javascript intellisense.  It’s not a requirement, but it makes life a lot easier, at least for me and my typical stumble-through-it HTML/CSS creation methodology.
  • Ruby, take it or leave it
    • 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.
  • Advertisements