RailsConf Wrapup
Posted by Nick Sieger Thu, 29 Jun 2006 17:02:00 GMT
RailsConf has been over for three four days, and I’m just now flushing out my wrap-up? Better late than...whatever.
Keynotes
All the keynotes were exceptionally good. I had heard Paul Graham speak at OSCON last year so while the theme of his new talk was good, the controversy wasn’t that controversial to me.
Taking notes during keynote sessions is tough! With the exception of Dave Thomas, all the keynotes were in the evening, just when you’re ready to kick back with a beer (which we did on Saturday night during David’s talk). After a day full of sessions, your brain’s done and the best you can do is osmosis, or wait for the video! That said, here are a couple of points and quotes I managed to snag.
Martin Fowler’s talk
- Rails does things a lot differently than many of the frameworks that were trying to become fashionable in enterprise application design
- Opinionated software -- Rails does not claim to be the right framework for everything
- Even if Rails doesn’t succeed or become ubiquitous, it has made an impact on the way applications are designed and built.
- If you do something quick, it has to be dirty, and if you do something well, it has to take a long time. Rails breaks this dichotomy -- quick doesn’t have to be dirty.
- Iterations and cycle time -- the faster a feature gets into production, the more engaged the customer is in future cycles. It introduces a conversational style of software development.
- “I’m not saying Ruby is that much better than Python, it just suited me more.”
- “This conference is a failure, really, because if Rails had succeeded it would be so simple that there would be nothing to talk about.”
David’s talk
David’s talk was subtitled “How I Learned to Stop Worrying and Love the CRUD” (slides now online). During the talk David describes the thought process he arrived at while attempting to boil down most operations in a Rails app to the simplest possible level of Create, Read, Update, and Delete. The table below illustrates the thinking:
GET | POST | PUT | DELETE |
find | create | update | destroy |
SELECT | INSERT | UPDATE | DELETE |
But! CRUD is not a goal, it’s an aspiration, a design technique (quoted from the slides). I was reminded greatly of Eric Evans’ superb book Domain Driven Design as David implorded us to model relationships, events, and closures in addition to tangible nouns, as this makes relationship-building a CRUD operation as well. Adding a User to a Group is made simpler by simply creating a Membership rather than hanging additional non-CRUD operations off of both User and Group, which makes for DRY-er code as well.
As others have remarked, we need better jargon for CRUD.
Add to the conversation the newly unveiled ActiveResource
, and
suddenly Rails is an exciting integration platform!
Others
- Stu Halloway’s MetaRails talk was a well-paced
progression through some of the metaprogramming techniques, and hurt
the brain less that Bill Katz’s talk. Stu mentioned how he runs the
presentation slides in a Rails app that pulls snippets directly from
the Rails codebase. Except now it appears that it will be broken
without some intervention now that the
Reloadable
module has gone away. - Duncan’s talk on deployment introduced a not necessarily new, but great metaphor of the web as pipe and why we should kick our FCGI habit.
Summary
- There is a lot of energy to be harnessed in the Rails community. This thing is just getting started.
- There are a ton of smart people working out the few remaining kinks in Rails. Deployment is about to get ten times easier.
- Mongrel is a mad pup. Don’t mess with him.
- Rails will soon be a killer service platform. There are going to be Rails apps deployed all over the place that will be well integrated through REST interfaces while all the SOA people still argue about what SOA means.