I’ve been advised by Dr. Nic not to apologize for my lack of more detailed entries covering the first day of RubyConf 2007. Suffice to say, the day went by in a blur. Here’s a quick summary.
The conference began with a talk by Rails core member Marcel Molina, asking “what makes code beautiful?” Marcel has a background in literature and linguistics, and took an informal, unscientific approach to his inquiry. After some historical background on defintions of beauty, Marcel settled on three principles put forth by religious philosopher Thomas Aquinas: proportion, integrity, and clarity. These ideas were put to the test against some code designed to coerce strings of XML into their appropriate native Ruby objects; two implementations were compared, and neither found sufficiently beautiful. In the end, Molina’s argument is that Ruby is optimized for beauty in a way that other languages are not. That said, he drew inspiration from Kent Beck’s discussions of optimal Smalltalk patterns, alongside quotes from Niels Bohr and Rousseau. A good warm-up.
Jim Weirich then gave a talk on advanced Ruby class design. This boiled down to a series of patterns he’s applied in Builder, Rake, and FlexMock. Techniques ranged from alternate strategies to class inheritance to the use of a BlankSlate object for metaprogramming without dangerous side-effects. Most ambitiously (no pun intended), Weirich attempted to build an ORM syntax in pure Ruby. While he ultimately doesn’t feel that it’s the best domain to apply his techniques to, he had interesting demonstrations of a node-based technique for “parsing” Ruby with Ruby itself. Engaging and informative.
The afternoon’s sessions began for me with Nathaniel Talbott’s talk on why the Camping web framework matters. Essentially, Talbott argued that it matters because it’s more hackable than Rails. The bulk of his presentation was a general discussion of the Ruby community.
The Japanese authors of the AP4R library then presented on their asynchronous messaging solution. While their slides were extremely readable, the language barrier kept me from fully comprehending the entirety of the talk. Their solution seems like an interesting alternative to robust messaging systems like ActiveMQ, RabbitMQ, JMS, and so forth.
Nathan Sobo impressed the crowd with a talk on his Treetop library, with aims to improve syntactic analysis in Ruby. There are a number of problems for which regular expressions aren’t a viable solution, but Treetop handles them nicely. Complex language grammars and more can be parsed, all from a comfortable Ruby DSL. A well-delivered presentation on a great-looking piece of code.
The day’s sessions ended for me with Paul Brannan’s talk on avoiding pitfalls when writing C extensions to Ruby. I can’t say that a majority of the talk actually lodged itself in my brain, but I’m looking forward to a PDF of the presentation. I’m sure it’ll be a valuable reference down the road.
After dinner, Ruby’s creator got on stage to answer questions from the community. A huge variety of subjects were covered, but the general theme seemed to be that Matz is taking his time with Ruby 1.9, doesn’t have any huge features in mind for Ruby 2.0, and isn’t interested in optimizing Ruby heavily for performance at this point in time. Some frustrations with the core libraries were expressed, and there doesn’t seem to be a clear plan for improving their quality. The community was grateful for Matz’s time, but the session didn’t impart the sort of excitement I was hoping for.