Windows vs OSX vs Ubuntu for Ruby/Rails Development

When I first started working with Rails, I had a windows laptop and so that’s where I worked. Later I got on two different Rails projects that used OSX (on Mac minis). Now I’m using Kubuntu. I thought I’d take a minute to compare them all.

I’m not going to mince words here -- try to avoid developing in Windows if at all possible for these reasons:

  • Tests will run very slow (by a factor of 10 or more).
  • The mysql drivers are not so good (When I developed in windows, I noticed I kept losing my connection to the database during operations that took more than a second or two and I couldn’t get any of the replacement drivers to work).
  • A fair amount of the plugins will be much harder to install (we are using the Raspell gem for “did you mean” functionality which needs aspell and the windows dudes still haven’t figured out how to install it. On Ubuntu, it was a simple “aptitude install”).
  • Help online is usually not geared towards the Rails on Windows developer.
  • If you have to develop in Windows, get IntelliJ and load up Cygwin

If money is no object go for a Mac:

  • TextMate is about as good as it gets for Rails Development (It has a bunch of readily available macros and pretty darn good auto completion).
  • All the cool kids use Macs for development so there’s plenty of help online.
  • They’re very pretty and fun to use (this sounds like a lame reason but if you're going to be using something for 8 hours a day it might as well bring you some joy).
  • However, sometimes the package management on the Mac let me down. Fink and Ports and all that tend to fight it out and getting image magic installed ended up taking down the whole system (we had to wipe it -- no foolin’).

If you think Mac’s are overpriced, then go with Ubuntu (or some other linux distro).

  • It’s free!
  • It has a rockin’ package management system.
  • IntelliJ (with the Ruby plugin) is pretty darn good and I have a feeling its going to get better.

Really the choice between OSX and Linux is mostly the choice between TextMate and IntelliJ (or Eclipse/RadRails). And, for now, I think TextMate has a slight edge. TextMate’s auto complete is a joy to work with while IntelliJ’s indexing makes for crazy fast searching. In fact once IntelliJ gets a bit better (don’t let me down Jet Brains – help a brother out with some autocomplete (and maybe some refactoring support)) then it’s just a choice between a really slick operating system and merely a functional one.


Shlomo said…
Good to know. I have used linux pretty exclusively for the past 3 years with a little sprinkling of windows here and there for some .NET stuff. I think you nailed the most awesome part of linux, aside from the benefits of everything being open source is that the package management is second to none. And it is pretty darn good at everything else (unless that thing relies on proprietary code). Windoze totally works, but be prepared for just making due on lots of stuff. Mac, i have no idea, but am willing to give them the benefit of the doubt since they are unix based.
Unknown said…
I watched a RoR related video on the IntelliJ site yesterday...looked like they had code completion support for ruby.

Maybe you need to upgrade your version of IntelliJ or something.
Jake Scruggs said…
So the IntelliJ plugin does have some completion. If I type 'd' and hit control + spacebar I get 'def' and 'do' and 'defined?' as suggestions. But it does not suggest any variables available that start with 'd.' Also the suggestions after a '.' are almost always 'no suggestions' This is close enough to useless that I don't really bother using control + space (or the various variations).
Anonymous said…
How do you get auto complete to work in textmate?
Jake Scruggs said…
Escape key will do auto-complete. It's just going to recommend other words you have in the file, but it's somewhat context sensitive and surprisingly useful.
Anonymous said…
Forget IntelliJ, netbeans ruby rocks!

rspec support, autotest support, fast debugging, auto-completion, etc ...
Still in alpha but quite stable and new features every day!
TechSaint said…
I will have to agree, rails support in Netbeans has really been nothing short of herculean. The only problems I seem to have are when you add anything other than the Main API (other gems and rdocs), code complete doesnt seem to work well. But for standard ruby and standard rail libraries, it works great. It even has doc snippets during code completion.

Its also platform agnostic (built in java), so it works on a Mac/Windows/Linux/etc. And its pretty fast to boot because you can just download the IDE with rails support and nix the java, c++, and other libraries.

Thanks for the Info. I do a bit of Windows Development too, so I have been looking into moving to Ubuntu and then using VirtualBox (or VMWare if i can afford it) Virtual machines to run Vista/XP for any windows development needs.

Popular posts from this blog

SICP Wasn’t Written for You

What's a Good Flog Score?

Point Inside a Polygon in Ruby