Get Out of Your Subculture

I just finished photographing the Scotland on Rails conference, held this weekend in Edinburgh. It was a fantastic three days of Ruby and Rails discussions.

Dave Thomas: The Ruby Object Model

Dave Thomas of the Pragmatic Programmers

You might be wondering why I, a Mac and iPhone developer, am spending time at a Ruby conference. Well, reason number one is that my friend Alan Francis runs the conference and tapped me to take some photos in return for a free ticket.

Reason number two is that it's my annual get-out-of-the-Cocoa-subculture weekend, and I'm finding that increasingly refreshing. Not that there's anything wrong with the Cocoa community - far from it.

I just find that I'm at a place in my programming career right now that I want to become a better programmer. I don't particularly want to hear about how to use specific Mac OS X APIs - I can pick that stuff up in an afternoon, usually. I want to hear about software engineering practices, design ideas, experiences and problems and that kind of learning comes from anywhere. The language and the APIs are mostly irrelevant to that kind of knowledge. I learned a few new things, and came away with a ton of things to think about.

What interests me a lot at Scotland on Rails are the cultural differences from my own tribe. At SoR, you see TextMate on-projector all the time. Git is the de facto standard SCM, and Rubyists share their GitHub handles like Mac developers share their Twitter handles.

Testing is de rigeur in the Rails world. In the Mac world, some of us do it, some don't, and all of us struggle with some aspects of automatically testing GUI applications. Every year I come away from Scotland on Rails with some new insight about software testing.

What they don't talk a lot about in the Ruby world but which we, as programmers, obsess over in the Mac world is interaction design. About the most I heard about UX at Scotland on Rails was "if you're not good at interaction design, find someone who is" (I freely admit I didn't hear every word of every talk). I got the feeling that the division between visual/interaction design and development in the Ruby community is much sharper than it is in the Mac community.

I wonder if that explains the prevalence of unit testing in the Ruby community? I doubt anyone ever wrote a unit test to see if their Rails app would accept a track dragged from a table view in iTunes.

I just got home and haven't finished unpacking my bag yet. These are just half-formed but enthusiastic thoughts on my weekend. To my fellow Mac developers, think about going to an 'irrelevant' conference. Come to Scotland on Rails next year. You'll leave with something to think about, for sure.