Ruby On Rails with Windows Vista - Best Setup? [closed]
I don't know about "best", because that's a subjective question, but I can tell you what setup I use and recommend:
Editor: E Text Editor
TextMate seems to be the editor of choice for Rails on Mac. E Text Editor is essentially TextMate for Windows. Its bundles are broadly compatible with TextMate's including the Rails 2 bundle which is included with the basic install.
Alternatively, if you're into the whole Visual Studio ecosystem, then Ruby in Steel PE might be a better bet. It's a really nice all-in-one package that actually comes with (a stripped-down version of) Visual Studio now.
Environment: VirtualBox running Ubuntu Server
Deploying a Rails app can be a pain at the best of times; deploying a Rails app from a Windows environment onto a *nix server is even worse. Plus, running Rails apps on Windows is slow. Running your tests is slow. So I use VirtualBox to host a VM on my Windows machine that mirrors my target deployment environment as closely as possible. In my case I run Ubuntu Server because there are a really nice set of step-by-step tutorials for getting up-and-running with a full Ubuntu-based Rails stack on the SliceHost wiki.
Here are the benefits of developing using a VM:
- I map a network drive to the VM so that I can edit the code on it directly from Windows using E Text Editor. The VM acts and feels just like a command line window. So you don't feel like you're in a completely alien environment.
- It runs Rails and other Ruby scripts (like tests) faster than running it natively in Windows
- Everything is contained and snapshottable, so I can experiment and generally play around without worrying about breaking anything. If something does break, I just roll back to a previous good state.
- It uses hardly any RAM. It will typically use less that 100MB (it's currently using ~43MB, but I don't have a Rails app spun-up). Contrast this with, say, Firefox which will typically be hogging >200MB and you realize that running a Linux-based VM like this is amazingly efficient.
- I can move my environment between machines
- I have much more robust deployment workflow
- I can limit the VM to have exactly the same amount of RAM as the server I'll be hosting on. E.g., if I'm to be using a SliceHost 256MB slice, I would limit the RAM to 256MB.
- I can build a seperate environment for different hosts. If I wanted to host on Joyent, for example, I could build an Open Solaris VM
- Gems and other binaries won't need recompiling for your target environment
- It's "a good thing"™ to get to grips with the environment your Rails app is likely to be running on. Seeing as most, if not all, commercial Rails hosts run some sort of *nix derivative, you're going to want to be comfortable with the *nix environment.
There probably isn't a definitive "right" answer - it's going to depend on how you like to develop.
However, it's interesting to note that most of the "name" Rails folk seem to use Textmate on their Macs. So a fairly powerful editor rather than an IDE. I suspect this is at least in part because of the fairly strong TDD bias within the Rails community - not so much debugging being necessary because they're working in small test-driven steps. That's the theory anyway.
The closest analog to Textmate in Windows seems to be e. It costs, but a fairly trivial amount (pocket-money, if we're honest). There's a 30-day free evaluation available too.
I've used Scite for much of my Ruby/Rails work, don't discard it just because it's the "default" - there's a reason why it was chosen for inclusion.
As for IDEs, I couldn't get anything to work in Eclipse, NetBeans seems quite good and I tried the beta of Sapphire in Steel, also pretty slick. I just don't seem to want to work in an IDE; the opposite of how I feel about working in C#, strangely enough.
Are you just looking for an IDE, or a full stack (IDE, source control, database, web server)?
If just an IDE, I would recommend NetBeans or RadRails. Both have syntax highlighting, code help, support for Rails projects, code completion, and basically everything else you would expect to find in a full-featured IDE. Both are also completely free. Of course, both suffer from the "bulky" problem that you identify.
If a full stack, I would recommend Subversion, MySql, and Mongrel. These three are all very simple and well-supported in Windows.
Seconded for e-texteditor. I use it daily and it's great (although not without it's share of BUGS).
For the rails side of things though, I'd actually suggest a virtual machine running linux.
Ubuntu works well, the only caveat is that you have to install
rubygems manually, as it does not adhere to the great debian filesystem naming ideology :-(
I suggest this because if you want to do "advanced" things, such as installing ImageMagick/RMagick, or memcached, or a number of other plugins which require native C libraries, it becomes very painful very quickly if you're on windows.
A second reason is that unless you are very atypical, your production server will likely be running linux too. It's good practice to have your development environment match your deployment environment as closely as possible, to help you find and fix bugs earlier and more easily, and avoid fixing bugs that won't affect your production site (like windows specific ones)
Microsoft Virtual PC and VMWare both have free options, which work well, and are plenty fast, so this is not a problem.
Instant Rails is a good way to get started quick.
I can verify that it works well on Vista.
I suggest you install Ruby first. Then install Rails. Then download Aptana and install it. After that you can install RadRails from Aptana's start page.
Please refer to "Aptana Radrails: An Ide for Rails Development" published by Packt publishing when using RadRails.
You might want to take a look at this:
There's a free personal edition too
(Updated: Assuming that you already have Visual Studio Full Fat Edition)
I am one of the contributors to Rubystack is a free, all-in-one installer for Windows that installs Apache, MySQL, Ruby, Rails and all other third-party libraries typically used on a development environment (such as Imagemagick). You may want to give it a try
RubyMine 3-4 + (RubyInstaller, DevKit for building gems, Postgres, msys git) works perfect for me on Windows 7 as a development platform.
Well, except the problem that ruby is very SLOW with rails on windows.