RubyConf 2004, Day 3
The third day of RubyConf 2004 started with Daniel Berger's talk on using Ruby in Windows. I missed the first half of Daniel's talk 'cause I was up the night before, talking with Patrick about web caching, of all things, until 5 in the morning. What was so important about the discussion that couldn't wait 'til a decent hour? I have no bloody idea.
Anyway. Daniel is the creator of the Win32 Utils library, and he had lots of useful tips and examples about using Ruby in Windows. One useful tip for Ruby programs that need to find out what OS they're running on is that File::ALT_SEPARATOR isn't defined on anything else but Windows, so you can just test that.
Jamis Buck followed with a talk on Copland, an Inversion of Control container for Ruby. Copland aims to give you a lot of external control over how to manage dependencies between components of a large Ruby application. Examples include switching out external services at runtime, or even implementing Aspect-Oriented-Programming-esque facilities.
Copland is modeled after Java's HiveMind, and I think it's fair to say that such a heritage shows. Although Copland is Ruby, it has lots of featurese—external configuration files, factories, etc.—that are more idiomatic in Java than in Ruby. (I say this as somebody who inadvertently put a lot of Java idiom into his O-R mapping library Lafcadio, and is now going through a lot of pain to rip it all out.) And while Java might make this scaffolding useful, a couple of people, myself included, wondered out loud if it was worth it in a highly dynamic language like Ruby. The response, from Jamis and others, was that this sort of dependency management becomes worth the hassle when you have large systems. I have a hard time seeing how that works, but I'll freely admit that I just might not have worked on a system large enough to need Copland. So maybe it's the sort of thing I'll just have to revisit when the time comes. At any rate, it was a wonderfully provocative talk and I'm glad to have heard it.
Gordon James Miller finished up with an impressive war story about using Ruby to generate C++ code for a large hardware-software integration effort for the military. After that, Chad Fowler gave a few closing comments, saying that "the momentum is really building", and asking people to blog more to create more Ruby noise in the blogosphere. Rob McKinnon also pointed out that we should be doing more Ruby linking on del.icio.us. Rob really likes del.icio.us.
Then we had lunch, and no more speakers, but there was a marathon informal talk session afterwards. Gordon James Miller had finished at 12 noon, but our little Ruby-NYC clique stayed 'til 6 p.m., all of us floating around and getting sucked into one fascinating discussion after another.
I had a blast this year. I did have a few ideas that might make next year even more community-rific:
- Rob started a RubyGarden page for attendees, but it wasn't well-used enough. It would be cool if it were more widely publicized, and people were encouraged to include a picture so that you knew what the person you were looking for looked like. Heck, on the first day you could distribute printouts of that page to everybody, sort of like the facebook you get when you start college. (Depending on where you went to college, I guess.)
- We had three people who flew in all the way from Japan, which was unbelievably cool. We could barely talk to them, which was, like, not so cool. If the conference gets bigger, maybe it can afford to find somebody who speaks English and Japanese and is technically minded, and give them free admission if they promise to serve as wingman to our visitors from over the Pacific? Maybe that's a tough spot to fill, but hey, you never know.
From the example of last year's RubyConf, where RubyGems was created, I was wondering if something similarly groundbreaking was going to come about because of this year's conference. I don't know that any one such project was launched this weekend, but there definitely were a few loci of interest. RubyGems is now a solid installation tool, but there is more work happening to make it more useful, not as much in the core of the format but in services that might be built around it. There was a lot of talk about the Semantic Web and web services; last year I felt like Rubyists might have been a little slow coming to this stuff but this year it felt like you couldn't get away from it. And by hanging around late into the afternoon, I got to look over the shoulders of various Ruby luminaries as they laptop'd away, and get a hint of what they might be presenting next year. I'm hoping that by next year, I'll have something worth presenting, too, particularly since presenting Lafcadio last year was so much fun. I've got a few ideas, and I'm not sure where I'll direct my efforts first. With any luck, everybody will find out in about 12 months…