Day Three: Sunday, 16 November 2003
Sunday was the final half-day of the Third International Ruby Conference. The three sessions focused on the applying Ruby as a tool.
Jim Wierich presented Rake, a Ruby
make-like utility, describing what it does and examples of its use. Jim wanted something like
make that was portable, easy to use, dynamic, and flexible. There were a couple of aspects of the talk that got my attention.
The first was yet another developer showing that he could be massively productive in Ruby, and that Ruby can pack a phenomenal amount of utility into a few lines of code. Jim characterized his first cut as being thirty minutes of work, which yielded about 70% of
make's useful functionality in about a page of code. A common theme through the talk was how "way too hard" turns into "not too hard" with a little thought, and then after thinking "just do it" the Ruby version seems to spring naturally into existence.
The second thing that struck me was how easily Jim's pseudocode turned into Ruby. Jim has a few years' experience writing software, and it was a joy to see him describe the way that powerful features could be implemented in relatively little, but extremely lucid, Ruby code. This was just another example of a developer's experience and Ruby's design "just working together."
Hal Fulton showed us the beginnings of code refactoring and code transformation support in the FreeRIDE project. FreeRIDE is an IDE implemented in Ruby, and Hal demonstrated the refactoring support being made available through the IDE's editing interface. The editing interface is based on the Scintilla editing component. (See also its Fox Toolkit incarnation and the FXRuby project.)
Ruby Java Debug Wire Protocol (and Then Some)
Rich Kilmer has been working on the DARPA Ultralog program. He presented his tools to use Ruby to do distributed system testing on a live system of Java agents. This was an impressive chunk of work, manually extracting the Java Debug Wire Protocol (JDWP) specification from HTML into Ruby metadata, and building on that to provide access to the Java Virtual Machine Debug Interface (JVMDI). This allows simple programmatic control of hundreds of Java agents, and allows their states to be analyzed and modified, and all of this done with about a 20,000-line Ruby framework.
A useful framework of this size shows Ruby scaling to larger projects, and would be impressive by itself, but Rich used the presentation to introduce two more things he's been working on.
The first was Alph, a GUI for Ruby that uses Macromedia's Flash player as the user interface, with Ruby controlling it over the network.
The second was the revealing of RubyGems, a way of managing Ruby add-on modules. The need for some kind of package management has been talked about since the first Ruby conference, and there had been much discussion in the past couple of years about this. Rich, Chad Fowler, and Jim Weirich decided to "just do it" in spare moments in the conference, and now they had working code to show.
Impressions of the Conference
I have liked Ruby ever since I first saw it, and I was pleasantly surprised at the soul of the Ruby community when I started using the comp.lang.ruby newsgroup to ask my usual newbie questions. Because the community seemed such a positive and talented group of people, I jumped at the chance of going to the Ruby conference. I was interested in both Ruby the language and the Ruby community.
It's clear that Matz is aware of Ruby's strengths and the areas where it can be changed for the better. People are successfully using the language for everything from one-liners to projects with tens of thousands of lines of code, and are finding modules in the distribution and on the Ruby Application Archive. The plans for Ruby 2 and Rite are a good sign of where we're going. Ruby 1.8 is a big step forward from 1.6, and the RAA seems to keep growing.
The community around Ruby is vital both in the sense that it sustains Ruby and that it is full of life. The Ruby Application Archive, Rubyforge, and the Ruby Garden site are active community sites. Ruby Central has allowed the Ruby Conference to bring people together, thanks to the hard work of David Alan Black and Chad Fowler.
It amazed me to see how productive people could be with Ruby; this was borne out time after time in the talks, and the creation of RubyGems over the weekend just rubbed it in.
I had a really great time people-watching at the conference, and soaking up the enthusiasm and delight that Ruby engenders. I'm eagerly awaiting details of next year's conference; if I can possibly be there, I will.
Conference and Community Links
There was much typing going on at the conference, but lack of connectivity meant that people's blogs were not providing second-by-second coverage. If you want to get more of a flavor of the conference and the people there, here are some places where I expect coverage to appear:
- Ruby Conference 2003 site
- Chad Fowler's blog
- Rich Kilmer's blog
- Jim Weirich's blog
- Ruby Conference 2003 presentations
Mike Stok works as a senior programmer at Exegenix developing products using open source software.
Return to ONLamp.com.