Rich (richkilmer.blogs.com/ether),
Jim (onestepback.org), and I are
decompressing in the Austin airport, taking advantage of some Wi-fi access
and waiting for our flights. As I warned in a previous post, my posting
during the conference would require some very special planetary alignment.
It didn’t happen.

However, I was able to login to irc from Matz’s keynote to braindump into the \#ruby-lang channel (on freenode.net) about upcoming Ruby language changes. I won’t go too much into detail here, but Horacio Lopez (ruby-es.org) reformatted and posted it all on the Wiki (rubygarden.org/ruby?Rite). There are some fairly major incompatabilities on the way, but overall they’re going to make the language just that much better.

The conference, as usual, as a great experience. It’s great to get together with that many smart and creative people all at once. This year, we’ve done something I’ve been wanting to do since 2001: We wrote code. Friday night, during the round table with Matz, David Black (wobblini.net) brought up the age-old question of standardizing ruby package installation procedures. After the round table, he, Rich, Jim, Paul (rubystuff.org), and I spent the rest of the weekend crash-coding in whatever free time we could find and creating that standardized distribution system. It is based on an idea that was introduced at the first Ruby Conference, and has also adopted that idea’s name: RubyGems (rubyforge.org/projects/rubygems).

We must have been quite a spectacle to the hipsters in the hotel bar, with our laptops and ad-hoc network. We coded long into the night. The end result is that during today’s talks, Jim showed how you can create working Rake (rake.rubyforge.org) tasks for creating and installing gems, and Rich actually installed RubyJDWP as a gem "live on stage" for his RubyJDWP (rubyforge.org/projects/rubyjdwp) talk. We were also able to get remote installation and dependency management working (though not perfectly) before we left, including a "gem server" which you can use to serve ruby packages to others who have the right client-side tools.

The Ruby community has been talking about this for years. It was nice to just say, "Let’s do it now" while we had Matz and a great core group of Ruby programmers handy to give us requirements, answer questions, etc. For example, it was really nice when Paul and I had a problem with Test::Unit to say, "Nathaniel, what does this message mean?" (Nathaniel wrote Test::Unit).

The only regret I have about RubyConf this year is that it can’t be what I do every day.

I’ll post some more details on the conference highlights after I get some real rest (which unfortunately might not be until Wednesday or Thursday). Excuse any typos and/or incoherencies until then. . . ;)

Update: Ryan Davis pointed out that I mispoke (I mentioned I was tired, right?) when I said that Matz’s presentation was on future language changes. He was really looking for feedback on a bunch of high level ideas. It was more of a brainstorming session than a presentation. This is important for two reasons. The first is that I don’t want to mislead anyone into thinking that Matz’s presentation represented fully baked ideas. The second, and more important, is just the very fact that Matz came to the community and asked for help. That’s really great if ya ask me.