Ruby IDEs Come of Age 2
The Ruby development environment lagged seriously behind with people content to use glorified text editors.
Ruby on Rails brought a whole new community of developers to the Ruby platform, many who were curious malcontents from the Java arena like me. For folks who were used to the IDE integrating with your version control system, and even your issue tracking system, going back to text editors alone wasn’t going to cut it. Yet, so strong was the pull from Rails that some enterprising folks started creating a Ruby IDE: RadRails. RadRails is now a plugin for the Aptana web development platform, and Eclipse based tool. Aptana was my IDE of choice for quite a while. Since I was already used to Eclipse, and I had a set of plugins that I already enjoyed using, there really wasn’t much reason to switch. Except for this nagging feeling things could be better. I was still sorely missing refactorings, decent intentions, and working type-ahead for the Ruby API. Sure I was aware of the technical limitations, but I knew it could be done.
I limped along until I noticed that the Ruby Language had made Ruby 1.9.1 the new official Ruby. It had Rake and RubyGems as standard components, so there will be no issues with the stinking Linux distros that refuse to make an RPM for RubyGems. It’s all included. Of course, there are still some growing pains with some gems. Check out Is it Ruby 1.9 for details (they have a sister site for JRuby in case you are interested). I had an upgrade project ahead of me that required some features from Ruby 2.3.x, cleaning up, and security enhancements. Since I had to re-implement the site anyway, Ruby 1.9 was measured to execute faster, and I had the liberty of doing so, I decided to make Ruby 1.9.1p243 the new baseline.
That’s where my troubles began. It wasn’t just the Gems either. The IDEs just couldn’t handle it. They turned into glorified text editors with the ability to track commits. The debug feature was broken.
I remembered the Zen like experience that I had with JetBrains IDEA from the Java world, and knew they also had a product for .NET. I hoped they had a product for Ruby, and sure enough they have the RubyMine product. If you are looking at Ruby 1.9, or Rails 2.3.3+ don’t look at RubyMine 1.1.1. Look at their new RubyMine 2.0-beta. This is what Ruby programming should be. The price point is currently $79 USD with the current promotion, but normally it is $99. That puts it in the range that mere mortals like me can afford. It works quite nicely with Ruby 1.9, and even Rails 2.3.4 (although that wasn’t the version they developed against). I have my refactorings, my intentions, my effortless subversion integration. Formatting works. It’s fast. Type-ahead doesn’t flake out. Debug works (made possible with coordinated efforts between myself, the debug-ruby-ide gem maintainer and the JetBrains team—the latter two doing the heavy lifting). Let me tell you, JetBrains is as good and responsive as they always were, and the Ruby community is like the Java community used to be, but better and more pragmatic.
Aptana and RadRails will catch up, it’s a matter of time. However, JetBrains RubyMine works now, and it works better and faster than Aptana. On Windows, RubyMine performance is acceptable (on par with Eclipse), but on Mac it sings. Eclipse/Aptana’s performance doesn’t change no matter what platform you are on.
While I’m at it, I do have a major gripe with the Eclipse baseline. As a developer, I have a list of plugins I depend on because those features don’t come out of the box with Eclipse. However, the Eclipse developers who are ever moving forward, break the plugin API and the plugins I need to use. I can’t download a version of Eclipse and expect it to work properly. Then, if I have to hunt around for an older version, God help me. At least Aptana goes through great efforts to provide a stable and usable baseline. OK Eclipse, how is it that you provide an IDE for developing enterprise applications, and you don’t bundle the plugins for Subversion, CVS, and GIT? If Aptana can do it, why can’t you? It’s unthinkable that a responsible developer will touch code without the safety net of a version control system. Give them tools out of the box so they don’t have to separately install these plugins. Support the open source projects around you, so open source version control systems should have preferred status. And don’t release a version of Eclipse until you’ve got those plugins working with it. Really. I mean it. It helps you out in the long run.


