Ruby is growing up. Never was this more evident than at the recent 2013 RubyNation conference in Maryland.
Two things delighted me. The first was the number of women presenting and attending the conference. The second was a renewed respect and appreciation of classic software design practices.
When I started with Ruby and Rails so many years ago this is what I heard: “‘Design Patterns are already applied and built into rails, you should focus on learning the Rails conventions”, and that message was dis-passionately delivered by pasty overweight men, drinking lousy coffee and wearing Birkenstocks. But that “golden path” is not for everyone, and it’s led many of us through some dark and scary woods. I can understand the desire to program without knowing all the core academic Object Oriented stuff, but it is exactly that stuff that I enjoy the most. I’m thrilled to see it coming back around as an accepted practice. It turns out it is O.K. to look before you leap.
And this grand new vision of thinking first, is not chanted down from pompous, mid-life crisis, balding charlie-brown looking drones. It’s coming from the women! Sandi Metz, author of Practical Object Oriented Design in Ruby, provided an exceptional presentation on the writing of good tests. With a focus on well defined interfaces between classes, the introduction of a little ‘ceremony’, it becomes possible to develop great, easily tested software. Tests can remain simple, clean and lead to better design throughout your application. I will be owning her book.
Not to be outdone on the front of thoughtful web development, the white man did represent well, through the likes of Jason Clark. Jason, from New Relic, provided a detailed overview of the application of the Event Pattern – a modified version of the Observer Design Pattern, from the original Go4 book. Jason’s talk focused on real world problems faced at New Relic and how they overcame them though some thoughtful design. The Event pattern provided them a means to decouple their classes and clean up their code, making it more easily tested, modified, and extended. He followed up with details on the use of ActiveSupport::Notifications – the new (and well thought out) eventing system within Rails.
“Academia and Hacking”, by Emily Stolfo, was the most innovative and surprising talk I encountered at the conference. Emily is currently teaching a Ruby on Rails class at Columbia University. For those of you with a CS degree you have some idea what an innovative idea this is in and of itself. Her “5 Hacker Habits” – addresses a gap in our present education experience. She’s worth following.
I’m sorry to say I missed Kerri Miller’s presentation on code metrics (I’m forced to blame Josh Adams’ presentation on robotics which was way too much fun. ) My good friend Kendal felt she provided one of the best talks at the conference, so I found her video on Confreaks. Kerri is a funny, insightful presenter, with great thoughts on how we can make effective use of code metrics. Kerri is an opinionated, fun, confident presenter. She and Sandi Metz really stand out from the crowd as effective capable technical leaders.
There were many other great presentations. Russ Olson gave a great introductory talk on insight and intuition, and how to make the best use of them. Both Dave Copeland and Andy Piszka offered thorough, well examined approaches to scaling large ruby applications iteratively. And Dave Bock did an excellent job hosting a series of lightening talks that were very enlightening and fun.
So what is the future of Ruby? I think it’s a future where people spend less time “meta-programming” and where the community reforms itself around core principles rather than core people. Keep an eye on groups like the Rails Girls DC, they are the drivers of the Ruby community now, and they will have a powerful impact on it.