Ruby's Present and Futureby Mike Stok
The third international Ruby Conference ran from November 14th to 16th in Austin, Texas. It brought together Yukihiro "Matz" Matsumoto, the creator of Ruby, and Ruby users from many countries and disciplines to discuss the state of Ruby and to let us hear what Matz has in mind for the immediate (and not-so-immediate) future in the Ruby world, as the language matures. If you want to discover more about Ruby, the Ruby Home Page is a good place to start, and the next places to visit are the community web site at Ruby Garden and the Pragmatic Programmers' collection of Ruby links.
For the past couple of years, Ruby seems to have been popping up all over the place. The conference gave me a chance to get an idea of who's actually using Ruby and what they are doing with it, and put some faces to names.
The comp.lang.ruby newsgroup is the main forum for discussing Ruby. It's gatewayed to a mailing list, and many of the contributors to the newsgroup are also active on the #ruby-lang IRC channel on irc.freenode.net.
Ruby Central Inc. organized the conference. This was the first Ruby conference separate from OOPSLA, and it was a pleasant surprise to see that there were around 50 attendees, not significantly different from the previous year. If you have ever browsed the comp.lang.ruby newsgroup, then many of the names of conference attendees would be familiar. I suspect that there will be quite a few blog entries from the conference.
What's Up With Ruby
Some of the major events of 2003 for Ruby were its tenth birthday, the release of Ruby 1.8.0 in August, and the first European Ruby Conference. Ruby 1.8.0 contains several improvements in the core language over 1.6.x, as well as the inclusion of some of the more popular packages available from the Ruby Application Archive (RAA). Rubyforge, a site for hosting Ruby-based projects, was launched in July 2003.
Day One: Friday, 14 November 2003
The day started with breakfast and David Black's introduction. David and Chad Fowler are amongst the people who put a lot of their time and effort into realizing the conference as Ruby Central.
Over the course of the day, there were five presentations, and a roundtable with Matz after the evening meal. I'm not going to give a blow-by-blow account of the talks; I expect the presentations will be available online somewhere.
In one presentation, Steve Tuckner described the benefits of using Ruby for a commercial product, as well as the difficulties he encountered implementing a Windows application that talked to custom hardware. In another presentation, Jack Harrington talked about code generation. His book, Code Generation in Action, uses Ruby as a language to demonstrate the construction of programs that write programs.
There were presentations by the developers of libraries that can help people working on projects that need a web application framework (Borges, by Eric Hodel) or an object-relational mapping layer (Lafcadio, by Francis Hwang). Both of these are in an early stage of development.
The roundtable covered a variety of areas, from requests for a formal language specification to whether Matz was bored after ten years of developing Ruby. Fortunately, he's not. Some of the more serious topics raised were a desire to get more of the Japanese documentation translated into English, and the issue of how best to package Ruby extensions so that it is easy to install and remove them. Other questions ranged from possible speed optimizations in Ruby to how Matz planned to manage change in the language as more code uses it, and whether particular keywords should be deprecated. During the roundtable discussion at the end of the first day, Matz said that he would be talking about Ruby 2.0 and beyond the next day.
My impressions after the first day were very positive, as Ruby seems to be used in a variety of areas, and there are more modules and libraries becoming available each week.
It seems that people like Ruby because it makes them very productive. Several people commented that, after switching from another language that they used well, they thought that their productivity improved and that the maintainability of the code improved, too.
Ruby's character affects the way people use the language. For example, many of the XML libraries that aren't just wrappers around C or C++ libraries seem to implement a Rubyesque interface first, and then have facilities to use "gnarly" specs added so that, say, people familiar with DOM can be comfortable.
The people using Ruby in commercial environments suggested strategies for getting Ruby into an organization.
The mealtime discussions were interesting. Ruby developers wanted more documentation, especially of the libraries. People who had seen the No Fluff, Just Stuff symposiums were surprised how many times Ruby was mentioned by panelists at a Java event. Ruby evangelists were wondering what needs to happen to make Ruby more popular. Do we need more books or a couple of big applications to show that big Ruby projects work? Many people are quietly introducing Ruby to organizations formally, or as a tool that allows them to be more productive as consultants.
All in all, it was an interesting first day that allowed me to put faces to names, showed me the number of different types of people using Ruby. I looked forward to the next couple of days.