I attended RailsConf 2009 and I’m quite happy about it. With close to 2 years into the Rails world, I wish some of the presentations were for a more advanced audience. The most interesting part was in the panels and keynotes.
Note: a few presentations are available through blip.tv. All in all, and somewhat briefly, what to remember from RailsConf 2009? If I had to choose 2 words to summarize it, I’d pick productivity and Rack. If you need more details, keep on reading!
Keynote by DHH
Rails has been there for 5 years (2004-2009)
Rails 3 will have:
- new routing
- unobstrusive and agnostic JS
- More agnosticism (e.g. ORM-agnostic)
The real secret to high productivity comes from “renegotiating the requirements”, i.e. make sure the said requirements fulfill the need in its simplest form (which is very often different from the way it was originally expressed).
Keynote with DHH and Tim Ferris
Although a lot of people didn’t enjoy Tim Ferris’ keynote (which was anything but terse, and seemingly too far beyond software engineering), there were nevertheless some points which were interesting.
- Set rules for one’s self
Tim Ferris explained that having very little time to do something forced him to set rules so that he could focus on the most important things. This resonates with Eric Evans’ conviction on identifying and subsequently focusing on the core business value. Or the idea that 80% of your time should be spent where your business has most value, and not only 20% of your time (as it is often the case).
He also talked about ‘lifestyle design’ as opposed to ‘deferred lifeplan’ (having retirement as one of its assumption). I thought that this resonated with the concept of ‘lifestyle business‘.
- convention over configuration
And here is a parallel with a core concept in Rails:
The idea of convention over configuration is a very appealing one because you want to have rules and rituals for everything that does not involve your core competencies, so that you can use your creative resources where they are most valuable.
- Information diet
The idea is to develop ‘selected ignorance’. In our digital world, there is more accessible information that it is possible to digest. So we need to create barriers or filters in order to select.
“If you look at how media/news is generated, the less you believe it’s necessary to read it, partially because it’s biased or inaccurate”.
- Path to success?
Through all conversations he had with successful people in technology or in other domains, he consistently heard one piece of advice:
There is no one path to success or productivity. It’s very personal. But there is one path to be completely miserable [or failure], and that is trying to please everybody”
Keynote by Chris Wanstrath
This idea of friction, it’s a lot like the inverse of productivity. Being productive means getting things done efficiently and effectively. Friction keeps you from doing those things, slows you down, conspires against you, wastes energy.
- Examples of productivity
Here are two of the most important investments you can make when starting a new business: having professionals file the paperwork and handle the numbers.
We all love Rails because it makes most of the tedious stuff go away.
And testing is famous because, well, bugs and bad design are the worst.
- Focus on the community
So let’s follow these examples. Let’s create more projects that scratch an itch or ease some pain. Let’s stop obsessing about which test framework to use and start obsessing about building sites that solve problems. Let’s stop arguing about languages and continue improving our favorite ones. Let’s stop blogging lengthy tutorials to get RSS subscribers and start contributing to official documentation efforts.
Keynote message: Let’s focus more on code and less on talk. More on the community and less on ourselves.
Keynote by Robert Martin
If Tim Ferris’ keynote was judged as the least appreciated keynote, uncle Bob’s keynote was certainly the most appreciated. It was hailed as both entertaining and interesting. His keynote title was: “What killed SmallTalk and might kill Ruby?” Here are his answers:
- lack of discipline (specifically: using proper TDD)
- arrogance, lack of humility (‘us’ vs ‘them’)
- lack of acceptance to solve the dirty problems (those of the enterprise)
In addition to that, some catchy phrases:
- SmallTalk epitomized what OO was about
- SmallTalk was the most powerful language in the 70s and 80s
- what is clean
today might not be clean
- Tests eliminate fear
- professionalism is the disciplined wielding of power
Rack is the New Cool Kid
Several talks during RailsConf were about Rack (which really is a very simple way to plug functionality before or/and after the handling of a web request), people were talking about it. There certainly was a buzz about Rack.
Personally, I think Rack middleware is very similar to a ServletFilter in the filter chain, in the Java world. If you haven’t played with Rack yet, the best introduction to Rack I could recommend is Dan Webb’s 8-min presentation.
Greg Pollack and Jason Seifer (the RailsEnvy guys) gave a presentation about the Rails innovations in the last year. Here are the pieces of software worth mentioning:
- RubyMine IDE
- Rails metal
- Rails templates
- metric-fu gem
- Cucumber for BDD
- Spike (log analyser)
- Ultrasphinx (full-text search)