The excitement at RailsConf was, as lazy journalists say, palpable. In the interests of journalistic integrity, I must admit that I didn’t actually palpate it. However, the energy caused by having so many passionate and intelligent people in the same room was invigorating. Everyone there loved Rails, darn near everyone there had built something substantial, and everyone had specific things they wanted to learn. Chad Fowler and the rest of the RubyConf committee did a great job making them happy (except for the erratic hotel wireless, which is one of the things that’ll be better next year when O’Reilly coproduces the conference with them).
I wasn’t there as an O’Reilly Conference Drone however, at least not in the sense that I was there to help with our partnership with RailsConf next year. I was there as Mr OSCON Guy, trying to figure out what’s important in Rails, who’s interesting, and where Rails is going. I don’t have all the answers yet, but I have a much better picture of the subset that is the RailsConf audience.
Ruby on Rails
The overwhelming sense I had was that Rails and Ruby are very fortunate. Their killer app zone is not the entry-level market that Perl’s CGI and later PHP hit. This means that Rails and Ruby aren’t the first programming language for people, and that a huge amount of Rails and Ruby code is not being written by people who’ve never written code before. A lot of the ill will that Perl and (to a lesser degree) PHP experience is because they absorbed a lot of newbies.
I keep running into Python, Ruby, Java, etc. programmers who used to be Perl programmers. Some people look at “used to be” as a bad thing, concluding that Perl is a vile language that has chased programmers away in droves. I say that Perl has taught many people enough programming that they can move easily to another programming language. That’s a great thing. Compare, say, BASIC, where many programmers never make that transition. Anyway, this isn’t a discourse of the pedagogic value of Perl. Back to Rails.
Indeed, instead of being flushed (in the toilet sense) with newcomers who slow down the conversation, RailsConf was full of people who’ve left Java for fresher pastures but retained their good habits. Everywhere I turned, there were people who tested first, people who were seriously concerned about deployment and scaling, and people who were building fantastically useful pieces of infrastructure. It was like Burning Man, where a city of highly useful tools and productive people emerges in the course of a week.
This happened in the small as well as in the large. There were a lot of conversations where people showed off their projects and talked about where they were stuck, and I kept hearing people saying “oh, I got some code for that from (insert name here) earlier today”. There was a lot of unprotected code exchange going on, and it was exhilerating.
That’s not to say that everyone’s peachy happy in Rails-land. There’s a lot of work to be done on dealing with a lot of traffic, interfacing with the enterprise (e.g., Rails ActiveRecord wants you to build your tables with the Rails conventions, and hooking big legacy databases into Rails is therefore a non-trivial task), or even deploying at an ISP. Matt Biddulph gave a fascinating talk (PDF) about his work putting the BBC archive catalog online, and along the way mentioned the problems caused by having to deploy as a special one-off because the BBC didn’t have Rails as a supported deployed platform. That’s just one small example of the work still to be done.
The exhuberance, in fact, reminds me of Perl from ten years ago. Everyone’s hiring, the killer app is written by someone whose use of the language is diplomatically described as “idiomatic” (as one person at RailsConf said, “sure, I could do what he’s done, I just wouldn’t rape the language to do it”), and everyone has the wild-eyed glee of first language love in their eyes. Even the Java refugees–it’s their first scripting language, and the speed of development, ease of coding, and much closer alignment to the programmer’s mind trigger this near-religious zeal. It’s the same in Perl, Python, and (again, to a lesser extent) PHP. Dynamic interpreted languages make life easier, and people love things that make their lives easier. That passion is infectious, by the way: I started learning Ruby by the second day of the conference.
If RubyConf is Perl ten years ago then YAPC must be what RubyConf will be in a decade’s time. Everyone’s seen a bubble burst, seen the Next Big Thing come by and draw away the tech magpies (“ooh, shiny syntax!”). But they’re still passionate. They’re just older and wiser: the thirty-somethings of the interpreted languages (I say this as a thirty-something, so naturally thirty-somethings are my gold standard of maturity :-). Wisdom comes with experience, but at the cost of the urge to do all-night hacking sessions. There’s still some of that (Audrey Tang has a superhero’s energy and is forming a coding legion of energetic and strong hackers that will build a Perl 6 implementation in Haskell), but while
we all still love to code, we’re also not ready to define ourselves by our code.
One thing that Perl has, because of the maturity, is a developed sense of humour. Why the Lucky Stiff concentrates Ruby’s humour into a singularity of lunacy (keynote bingo aside). Most everyone in Perl feels comfortable making a Perl6 schedule joke, doing something crazy with their slides, or deviating from pure Perl in their talks. It’s a collegial atmosphere of broad tech interest anchored by Perl, rather than the revival fervour and purist Railsian excess of RailsConf.
Not that YAPC was tech-free: there was a lot of hard tech there. Nothing that’s rewriting the way a class of apps is written, as Rails did, but some very nifty tools and techniques. Everyone has the hots for Inside-Out objects, though they’re not my cup of tea at all. The Goo is amusingly weird, and Miyagawa’s plagger is genius.
The schedule had a lot of Ajax and web frameworks talks, though after RailsConf I wasn’t too enthused about those topics. I remember reading David Allen Black’s excellent Ruby for Rails in the Catalyst talk: Catalyst is okay, but I don’t mind learning Ruby. I like pork and I like milkshakes, but if I want a milkshake I won’t put a pig in a blender just because the pig is all I have. Perhaps that should be camel, not pig. I got lost in that analogy.
Web frameworks, in fact, are the hot topic du jour. I went out to dinner on Monday night with Adrian Holovaty, who is co-creator of the Django framework with the esteemed Mr Willison and editor of Editorial Innovations at the Washington Post. I’d first been pointed to Adrian in the context of the map hackers we had at Where 2.0 last year; Adrian is the creator of chicagocrime.org. This is the kind of thing that editor of Editorial Innovations does. Adrian is very articulate about his job; he sees himself as a journalist who presents information for public good using technology and not purely words.
My words with Adrian were in short supply, actually. I brought Jesse Vincent to the dinner, and not 60 seconds had gone by since “Adrian, meet Jesse; Jesse, meet Adrian” before both had their laptops out and were comparing install horror stories. Jesse’s the creator of the unhyped Jifty framework, which is still in its early stages. Jesse made Adrian go “oooh, that’s clever” and Adrian made Jesse go “oooh, I’ll have my minion code that tomorrow”, so it was a productive meeting of the minds.
I got to catch up with Adrian after he and Jesse had finished the framework geekout. Adrian’s working on another project (as you can tell from his help wanted ad a while ago) and it’s very cool. As with Chicago Crime, it’s a mixture of technology and urban information that informs and improves our public life. It’ll be out soon and I can’t wait to play with it.
He’s in hog heaven at the Washington Post. They have huge amounts of information and their job is to make it useful and meaningful to people, for which Adrian’s command of technology is a great match. Take, for example, the congress votes database where you can track your congresscritters’ votes on the web, even electing to track them through RSS feeds. An RSS feed for democracy is a wonderful thing. The Post has hundreds more piles of data for Adrian to open and make useful.
Now I’ve explored what’s new in Ruby and Perl and Adrian, I’m bringing it all back to OSCON. Allison Randal and I have added another day of Perl content to the schedule since it first went on-line, including Porting Mac::Carbon from PPC to Intel, Building Search Applications with KinoSearch, and another by Audrey Tang that promises to be mind-expanding. I’m signing Adrian up to talk about his Washington Post work (and hopefully his new project). And as I look over the Ruby track I’m heartened to see the right people and topics covered: the program committee has done their usual fantastic job. Having survived a week in Chicago (including the slim food pickings around the RubyConf hotel) I’m now looking forward to June 24 and my week in Portland. See you there!