Wednesday, November 29, 2006

NetBeans + Ruby = Awesome

Tor Norbye is a programming machine on par with the legendary Ola of Bini. He's the one-man force working on NetBeans Ruby support, and his progress has been epic. Here's his latest screenshot and a short blurb about it:

NetBeans + Ruby = True

In just over two months' time, Tor seems to be (in my opinion) on the verge of eclipsing every other Ruby editor/IDE out there. I've been using development builds of his stuff and it's really superb. A few features I've missed before that are now rapidly maturing in NB+RB:

  • Highlight usages: not genius, but smarter than dumb-as-a-post right now; great for local and block vars, getting smarter for methods
  • Clickable methods and variables: limited to method-scope for variables or file-scope for methods, but coming along very quickly...and even those limited scopes are way better than nothing at all. I don't know how many times I've wanted to Ctrl-Click a method in some giant Ruby file and go straight to the method def. Awe-some.
  • Inline refactoring: I've demoed this a couple times, but for local and block vars you can do inline renaming...essentially renaming all instances of the variable at the same time. It's really nice, looks cool, and represents the tip of the iceberg for refactoring capabilities.
There's plenty of other stuff that's cool, like the Navigator view of a file (shows classes, modules, methods, of currently-selected file), AST view (great for us Ruby language hackers that like to see the actual structure of things), and more.

Things are definitely shaping up nice for next-generation Ruby IDEs.


Eugene Kuleshov said...

That is really awesome. I guess we won't see much of the evolution in Eclipse RDT now that you folks are working for Sun. :-(

Steve Shreeve said...

Looks tremendous!

Does this have a name? A few crazy suggestions:

1) inbred = Innovative NetBeans Ruby EDitor

2) nbride = NetBeans Ruby IDE

Great work Tor!

Anonymous said...

Looks like there's some competition coming up here :-) Especially the inline renaming, I still have to figure out how to do that for RDT, our rename currently pops up an ugly dialog...

Charles Oliver Nutter said...

Competition is good! I'm just glad we can say we've had almost no hand in the NetBeans stuff since we've got more than enough to do on JRuby. I've built NetBeans exactly once, just to try it out. I hope this will encourage RDT guys to take things to the next level, which will push NetBeans to the next level, and so on. Meanwhile, we'll quietly make JRuby better and better to benefit everyone :)

Anonymous said...

Yes, I completely agree with you, competition is very important.

I'm checking out the netbeans source from cvs right now and I'm sure I can find some interesting stuff, since we both work with JRuby. Especially the refactoring part.. :)

Jonathan Tang said...

Interesting...I'd started on a Ruby Netbeans plugin, but got sidetracked by other projects. I'm glad I didn't get very far, otherwise I would've ended up duplicating a lot of work.

Looks really cool. I'm interested in seeing how the autocompletion and refactoring tools turn out, since those seem like really hard problems.

As for a name, how about RuBeans?

Anonymous said...

The "Highlight Usages" you mention is available in current nightlies of RDT, and has been for some months, which means it'll be in RDT 0.9 (in Eclipse this is called "Mark Occurrences").

Jump to definition (at least in the minimal version that you describe) is simple to do,literally a handful of lines of code (I've done this for other languages) so it's easy to add (just need to find a few minutes...).

AutoComplete is also mighty fancy in the RDT nightlies, with correclty offered fields for the current class and local variables).

BTW: Tor better ramp up his coding speed even more, an editor is one thing, but RDT + RadRails offer a GUI Debugger, Rails support, TestUnit GUI support, an Outline, and refactoring support (Mirko & Co's work).

Fun times ahead, in the Ruby IDE space... not just two Java based IDE, but there's also another contender
if you look at their blog, they've been busy too. And this ignores all the other existing IDEs for Ruby;

Busy days!

What does Charles and Tom working for Sun have to do with RDT? These are different teams. Not to mention that RDT 0.9 will include the type inference work that was sponsored by Google Summer of Code.

Anonymous said...

Update to my previous post:
A patch that adds code browsing (for class es and methods in the same file) is now available and floating around on the RDT devel-list. The joys of open source...

Anonymous said...

Now if only Netbeans had some VI key-bindings, I might actually be comfortable enough with the editing to use it! Please, oh please add VI key-bindings!

Anonymous said...

That is really awesome....Keep up the great work on this blog.
Good luck with everything. Merry cristmas....