Ruby / Rails IDE Comparison : Idea, Netbeans, RadRailsFebruary 28, 2007
Welcome early-early adopters!
Ruby and Rails are getting more and more popular in the community and well known editors start to get into the business for our pleasure!
While my editor of choice for Java has always been Idea (since v2.6 about 6 years ago) as I always found their product avantgardist and really userfriendly and codingfriendly, I wanted to see what was going on in the Rails / Ruby world where I was historically using RadRails and SciTe because of the lack of serious competitors. The simple editors like vim (for the nostaligcs) or SciTE are likely to fit your needs for short and simple scripts but a full IDE is always better to have when you are working on a more important project. The Ruby language itself eliminated a lot of features you would need from an IDE in other languages like Java (For example I am thinking about the Generating Getters / Setters from fields that you get directly with the attr accessors or some long live template public static final String …). The absence of type and the dynamism makes it also impossible for IDEs to do some operations you would do on typed static language (like Java).
Firstly you must notice that apart from RadRails which has been into Rails / Ruby editing for some time, Idea and NetBeans support for Ruby is really fresh (officially) so you should be lenient. You’ll also observe those IDEs tested here are all written in Java (as Plugins). Now you can wonder why not in Ruby ? There are several reasons I guess, notably a lack of serious good looking cross platform gui framework in Ruby (Tk is far from swing and swt quality and anyway it is not Ruby anyway even if that’s the easiest interface to plug with Ruby or Python); Also making an IDE from a well proven platforms guarantees that you’ll benefit from the history and quality of existing software features.
You should also try those IDEs by yourself as an IDE is a day-to-day tool that you learn to use and adopt with time and not with some simple test. That’s why here I’ll mainly compare features.
You’ll find an exhaustive list of features for : NetBeans and Idea (and 0.1.1 and RoadMap, official listing from Jetbrains with some screenshot) .
The version I’ll be testing here are :
- Idea 6.0 (Support for Idea Selena (future 7.0) is in the pipes) with Ruby Plugin 0.1.1.
- NetBeans 6 Daily Snapshot (I started with version 20070211 up to 20070221). For the moment Ruby support is only available for early adopters in the snapshot releases. It was released lately as 6.0 Milestone 7 (and you’ll wait for M8 for some more features)
- Common Scripting Language API/Support 0.13.0/0.14.0.1.184.108.40.206
- Embedded Ruby 0.10.0, JRuby Implementation 0.92.3, Rake-Based Project Support 0.10.0, Ruby IDE Support 0.16.0, Ruby On Rails 1.16.0, Ruby on Rails Project Support 0.13.0, Ruby Projects 0.14.0.1
- Common Scripting Language API/Support 0.14.0/0.17.0.1.220.127.116.11
- Embedded Ruby 0.11.0, JRuby Implementation 0.92.4, Rake-Based Project Support 0.10.0, Ruby IDE Support 0.20.0, Ruby On Rails 1.1600.0, Ruby on Rails Project Support 0.16.0, Ruby Projects 0.17.0.1
- I firstly wanted to use RadRails 0.7.2 Standalone version (I blogged about the install for amd64) or even the RadRails snapshot to avoid having the overbloated Eclipse Environment but I couldn’t get the latest RDT Plugin (with Refactoring module) to work with it, so the tests would have been biased as there have been a lot of new features developed in RadRails and RDT Ruby Plugins. So I’ll be using Eclipse 3.2.1 with RDT Snapshot Plugin (in my case 0.8.0.702111959NGT) and RadRails Plugin 0.7.2
. Module installed version I have at the moment :
But latest releases with some more fix/features come with :
I didn’t encounter any BIG problem during installation for all of them on either Linux and Windows.
You should notice that Idea and NetBeans don’t show up when you’re running Beryl, after switching back to KDE Windows Manager you’ll be able to see the window (You can switch back to Beryl Window Manager after), this a known issue with Java (either 1.5 and 1.6) and Beryl. Eclipse will show up as it is in native swt.
You can follow the procedure I described to install those IDEs and their plugins/modules :
You can have a look at an exhaustive listing of features I have noted and tested. I tried to be the most uptodate but some new features might be recently available while I am speaking.
Additional Appreciable Features inherited from the IDE Platform itself (appart from the plugin) :
I tried to have a look an exhaustive view of the features for all IDEs, I might have missed some and your comments are welcome!
Of course, as those plugins are in heavy development, some features might be not fully working.
Ruby is already a straight forward language but you can still accelerate a bit the developing time by making use of any of those IDEs.
While the most complete IDE in term of features is Eclipse, I don’t find it the best, nor the most intuitive and at the end is not the kind of environment I am looking for. Now maybe that’s an old feeling and experience I have about the Eclipse IDE that it is the addition of many features which doesn’t represent a “whole”. Idea and NetBeans really look like it had been designed by one guy, they are really a monolithic application.
Here comes a quick review of the IDEs, many basic features don’t need to be compared and will be ignored here.
Netbeans owns its competitors in Edition and Navigation, which is after all most of the time you’ll spend in (apart of debugging). The syntax highlighting is very effective and clear. The autocompletion is advanced next to Idea and Eclipse at the cost of Indexing the Ruby and Gems SDK at first run (few minutes). The filtered autocompletion is in progress and depends on the context. Once you use autocompletion a list with all possible functions will appear, and while you choose any of them, you’ll get the associated RDoc, saving you precious time. It seems as if the browsing between class or through hyperlinks were better than its competitors. A debugger should be available with Milestone 8.
What we’ll be missing here are : a more finalized installation configuration and some more live coding templates. A way to start a new project out of existing rails sources was added lately. The rest is growing with robust and promising roots!
Eclipse is the environment with the more features as I said before. Unfortunately, I don’t find them as well realized and finalized as in Idea and NetBeans, and as I wrote above, I feel as if the application is not a monolithic homogeneous software, but the aggregation of n small pieces developed by n developers. And I have to admit that I never liked that much in Java / JEE and got the same feeling now in Ruby / Rails.
Eclipse got some advance with refactoring tools (which I had few problem with) designed by students which comes with a well done documentation and explanation if you are interested. Unfortunately I noticed instability when using Nightly Builds (NGT) of RDT (for instance the quick access generators wouldn’t work anymore while it does with PRD version).
I found the syntax highlighting poorer and interactivity with the coder less present than with Idea or NetBeans.
For the moment, the biggest advantage of Eclipse over its competitors is Debugging ability, but it comes in next releases of both Idea and NetBeans. Now the need of a debugger is not as essential in Ruby as it is in Java.
Eclipse is better than its competitors when it comes to YML edition which the others do not parse yet, and the Rails ToolBar which is a real cool addition that the others should copy. You can browse rails plugin (act_as…) with it.
Syntax Highlighting ScreenShot (with Rake nicely written sources you should have a look at ;)) for Idea / NetBeans / Eclispe
Another part of the code :
Quick look at autocompletion (only NetBeans managed to do it) :
Finally a look at rails developing environment (Idea / NetBeans / Eclipse) :
To draw a conclusion, I would say that if you have a license for Idea, if you are used to Idea, you should keep Idea as Ruby / Rails IDE, you’ll keep all the habits you used to have, the highlight will be the same as in Java (for class field, methods…). Even if it is missing some features from the others, the reactivity and activity of the developer will fill possible gap I am sure. But buying a license just for Ruby / Rails plugin handling is a bad choice!
Indeed my Ruby / Rails editor of choice for the moment is definitely NetBeans as it’s the one my productivity will increase the most with, and it is free. The development team is also really reactive, and the roots of the plugin seem serious and robust. You should notice that by default, it is packaged with JRuby interpreter and embedded Rails. That result in larger time than Idea or NetBeans when using rails generators. You should change those settings in Tools / Options / Miscellaneous / Ruby Application (as it seems to be working) to point your native Ruby interpreter (ie /usr/bin/ruby). That should accelerate each call to ruby (when you use generators for examples) which take much time when calling through JRuby. Unfortunately I didn’t find it myself that much fast, and I was losing the Output with hyperlinks of file created then.
I’d like to thank Tor (you should visit his blog to keep uptodate with development), Ruby Idea development Team (Oleg Shpynov), mirko (from RadRails) for their work and reactivity!
PS : I didn’t test Komodo but you should have a look at it, they often bring good commercial products, same applies to : Visual Studio SapphireSteel Visual Studio Plugin if you own a license of Visual Studio… Also JEdit Plugin.
For another comprehensive and serious Ruby IDE reading you should have a look at tabrez‘s Eclipse, Komodo, JEdit, SciTE, vim.
[UPDATE 20070324 : Due to merge of RadRails into Aptana, links updated]