I started a small project using Ruby recently. It is indeed a Rails project, though the code I am writing for it has little to do with Rails. I like Ruby, but I think that's because I like Java and Perl. I think of Ruby as Perl for Java. Of course there's Groovy now (which I am also a fan of) which is kind of like Ruby for Java (oh wait, isn't that JRuby?)
Anyways, since I think of Ruby in much the way I think of Perl, I figured I would write my code in a simple text editor (notepad2 to be exact) and do everything comman line with Rake. Then I realized there are some great tools out there for doing Ruby development. Ruby on Windows ships with FreeRIDE, a nice little IDE for Ruby. Well actually, the developers are quick to say that it "cannot yet be called a real IDE" but it's pretty close.
But wait, there's more. There are a couple of nice Ruby plugins for Eclipse. Yes, Eclipse. It is my theory that many Ruby developers come from Java, as opposed to other dynamic web languages like PHP and Python. Thus it's not surprising there would be Ruby plugins for Eclipse. All those Java devs wanting to experiment with Ruby can't live without Eclipse!
First there is the Ruby Development Tool or RDT. This is very similar to FreeRIDE, but with some extra features that Eclipse using Java devs have come to expect. Its debugger is just like the Java debugger that is one of the strengths of Eclipse. It also has built-in support for JUnit-like unit testing (Test::Unit.) For Java devs, they will find some limitations. Code completion and error catching are not as good, but that is simply because Ruby is dynamic.
RDT is a lot like the standard Java tooling that is core to Eclipse. For Java web development, there's the Eclipse sister project, Web Tools Platform (WTP.) Similarly RDT has a web development platform called RadRails. This is for Rails, of course, since that seems to be the only web development option for Ruby developers.
As I mentioned, I'm not doing a whole lot of Rails development on this project (yet.) So I haven't played around with RadRails too much. It looks very straightforward, with wizards for creating new Rails projects, target web servers, and databases, etc.
One of the big strengths of Ruby is that it is a fun language to program in. RDT (and presumably RadRails) make this even more enjoyable.
Finally, one last Ruby note. Spring 2.0 was finally released this week. One of the cool features it has is support for Groovy, BeanShell, and Ruby (via JRuby.) It seems a little odd to write a Java interface and then implement it in Ruby, but I can already think of scenarios where it could be useful.
Blogged with Flock