JRuby is the best option if you don't want to use virtualization, but the JVM startup time really starts to hit you if you use the rails command or rake tasks a lot.
One major reason not to install Rails directly onto Windows is because of all the gem incompatibilities you'll run into. JRuby would have the same problem.
The problem is even worse when you're learning Rails because you'll see an awesome Railscast on how to use X and then find out that you can't use X with JRuby. That'd be terribly frustrating for a beginner.
Even if the gem compatibility problem was solved, there's still the question of performance. Ruby on Rails? Ruby on Snails more like. Making Rails easy to install on Windows a-la railsinstaller is all very well, but until it's usable for even basic development there's really no point.
Even both were out of the way: where will you deploy? Heroku? EC2? Your own server somewhere else? Chances are high that it will be Linux, so its great to start with it.
I've been developing using Rails on Windows since last month. It is usable for basic development for me, but I had to discard TDD with RSpec since it's painfully slow (Spork with Guard don't really help).
I have ran into a ton of gem incompatibilities using Ruby on Windows, however, I would just end up finding a solution for it or a work around. But I can definitely see this coming in handy.
I've learned this the hard way. Your production environment is probably going to be Linux, so you will need to know that setup & have deployment tools regardless. Setting up Windows (or even OS X in certain respects) is just an additional hassle which will never quite match production.
Seems I have cause to post this in quite a few threads these days:
> These days, it seems like POSIX has become just another VM environment, like Smalltalk, Erlang, the JVM or the CLR. Mingw/Cygwin doesn't run *nix programs "on" Windows, really; it just provides them with a really half-assed VM implementation. Why not instead just go all the way and run, say, Ubuntu Server in a headless VMware appliance? If nothing else, it gives your spare cores something to do :)
14 comments
[ 2.6 ms ] story [ 40.2 ms ] threadThe problem is even worse when you're learning Rails because you'll see an awesome Railscast on how to use X and then find out that you can't use X with JRuby. That'd be terribly frustrating for a beginner.
The Ruby community is just too coupled to Unix, any setup you have directly on Windows will incomplete.
Maybe it's not such a bad thing.
> These days, it seems like POSIX has become just another VM environment, like Smalltalk, Erlang, the JVM or the CLR. Mingw/Cygwin doesn't run *nix programs "on" Windows, really; it just provides them with a really half-assed VM implementation. Why not instead just go all the way and run, say, Ubuntu Server in a headless VMware appliance? If nothing else, it gives your spare cores something to do :)