Tim Bray on Ruby IDEs
Tim Bray has been posting an ongoing series of articles documenting his experience in creating a Ruby based Atom protocol exerciser. His inisghts are a nice look from a newcomer to the language and he makes a good case for a number of areas where Ruby is behind the times and behind other prevailing languages.
One such case is in IDEs. I've been aware of this since I began looking at Ruby, and obviously with my work on RDT I've been trying to help out in this regard.
I would encourage Tim and other newcomers to the language to give RDT a serious try. While we're light-years away from the level of functionality found in Java support for Eclipse, we've been making some exciting progress on RDT lately.
In fact, for those who don't mind the bleeding edge, you can download our nightly builds via Eclipse's update mechanism at http://updatesite.rubypeople.org/nightly.
The latest builds now include the work that was completed by Jason in his Google Summer of Code project. So the astute among you should now notice mark occurences support for variables, and even some code completion. We're working to polish those features up and get code completion working under more conditions. Right now, it'll work easily to complete variable names in scope or methods on a declared type. There are some severe limitations as to when the method completion will work for now: it's the first method in the chain on the object and the type is able to be inferred (i.e. declared in scope). To try out the type inferrencing (and show I'm not lying!), you can use a simple example of invoking code completion on code like "1.".
I know, it's a long way from the JDT, but we're getting there. And with a pending patch to JRuby, we'll also be able to integrate the refactoring/code generation work by Mirko and company.
Using the Ruby Development Tools plug-in for Eclipse
I just noticed today that there's a nice new article up on IBM's developerworks entitled Using the Ruby Development Tools plug-in for Eclipse. The article gives a nice little overview of using the Ruby Development Tools Plugins within Eclipse and developing Ruby code with them. The article ends by incorrectly stating that the current release is 0.5.0, we've launched 0.6.0 with a significant number of new features. Hopefully this will help drum up some new users and even developers for the plugins!
RadRails 0.2 Released, and RadRails' ancestry
I'd noticed the launch and subsequent talk of the new Ruby on Rails IDE, RadRails. The idea intrigued me, especially since I'm one of the lead developers on RDT and we'd heard a number of folks who had wanted to spin off their own Rails IDE separately or on top of RDT. The interest has been piqued yet again by today's anouncement of RadRails 0.2.
RadRails is fairly impressive. It's a nice fully self-contained copy of Eclipse with the relevant plugins installed so all you do is unzip and double-click the executable. It has custom loading graphics, Rails project generation and all sorts of neat little helpers. So where did it come from and how'd they get a full Rails IDE up so fast?
So, I took a peek inside the zip and I was slightly irked by one thing. RadRails is built on top of RDT as well as the Subclipse plugin. You wouldn't know that by their webpage, but they did mention us in the about dialog under the help menu. Not for nothing guys, but if you're building on top of RDT and Subclipse (not to mention Eclipse), it'd be nice to share the attribution and love. RDT could always use the support to drum up usage or more developers which in turn would help your own efforts...
OK, personal rant aside, I do see a lot of improvements that they should consider. First, you have these wizards for generating new controllers or models. But they're hidden. You have to right click in the Rails Navigator, select Other... and then open the Rails folder to find these wizards. They should have nice big clickable icons up top on a menubar. Next, If I enter the name AccountsController in the controller wizard, you should be able to recognize that I typed Controller as a suffix and strip it out of the name before running the generator so I don't get accounts_controller_controller.rb generated. Third, try using the latest RDT 0.6.0 - it looks like you're running an old nightly build under the hood there because Rakefile and the Rails scripts are all not recognized as Ruby files and syntax highlighted, which they ought to be with 0.6.0. Fourth, the RI view we have in RDT? It doesn't look or work too well where you guys have moved it to be default. It should be fairly big like the console view in the bottom left, otherwise you can't read anything. Fifth, there should be shortcuts to show the other views RDT has such as the Test::Unit view or the Regexp view. They're still useful when developing a Rails project.
Ruby Development Tools 0.6.0 is out!
The long-awaited new version of RDT is now available. For those unfamiliar, RDT is one of the many choices of IDE for Ruby code - Alongside FreeRIDE, The JEdit plugin, RDE, and ArachnoRuby. RDT is an open source Ruby editor built as a "feature" for the Eclipse platform. (A feature is simply a set of plugins which should be installed together and are "branded" as a single release or product.)
This is exciting for me personally because I'm one of RDT's developers (it could be said that I'm the reason why it took so long to get this version out the door. Sorry!). Great big thanks go out to: David Corbin, Markus Barchfeld and Zach Dennis for helping push this release out the door; Thomas Enebo of the JRuby team for his help in getting integrated with JRuby and catching some hard to pin bugs down; and Torsten Uhlmann and Khaled Agram for their work on the new RI/RDoc view.
New Changes
- Integration with JRuby
- This was what took so long (for me) and was perhaps a bit too ambitious at first. We integrated the JRuby parser into the backend of RDT to generate an in-memory model of the workspace. For now we're just using it for syntax checking and warnings. Later we plan to leverage this for things like code completion.
- Code Folding
- Of classes, methods, modules
- An integrated RI/RDoc view
- Interactively view the docs for Ruby Core and any other Ruby libraries that have been parsed by RDoc with the ri output format option.
- Generate Rdoc for projects in the workspace
- Under the Project menu, you can generate RDoc for a project and it will automatically create the ri output for use in the integrated RI view.
- Integration of Task tags like in the JDT
- Finally you can sneak in your TODO, FIXME, or XXX's to mark spots in the code where you need to do some more work later. Custom tags, custom priorities, show up in the Tasks view.
- Significantly improved parsing (including problem markers and warnings)
- Thanks to use of the JRuby parser we should be able to handle parsing much more complex Ruby scripts without dying.
- Works with Eclipse 3.1
- The older version, 0.5.0 was broken on Eclipse 3.1 Milestone builds. RDT 0.6.0 fixes that.
- Auto-completion
- Auto-completion of open brackets, parentheses and quotes
- Better Ruby script and Ruby-related file recognition
- We're trying to get better at determing just what is a "Ruby" file (when it doesn't have the rb or rbw extension). We've expanded the files we consider as Ruby scripts or ruby related. (I snuck in a bunch of the Rails script filenames). We've also defaulted to showing all files in our Ruby Resources view.
Other major features
- Graphical code outline
- Code formatter
- Syntax Highlighting
- Integrated Test::Unit view/runner
- Interactive Debugger
- Custom and preset code templates (blocks, loops, class definitions, etc.)
- Regular Expression tester/view
- Clickable stack traces in console
Please check out the new Documentation, Download the latest release (or use the update site) and send all of the core developers your feedback and patches!