I went to a Ruby programming meetup last night.
The presenter started with the observation that Ruby and Ruby on Rails are so closely intermingled in people’s minds that, for many people, there is no separation. He said he couldn’t think of another language where the framework and the language where so frequently brought up in the same breath. You could easily program in Python, for instance, and not use Django. But if you’re at a Ruby meetup, chances are, most people there are using Rails. It was true tonight, too.
It was a review of basic language concepts, along with a brief history of how Ruby came to be; though I knew most of the details, a few were new to me, others were useful concepts that I’d half-forgotten about, and the rest taught me to appreciate Ruby’s elegant design. In doing some on-the-fly comparisons with other languages, the presenter reminded us of how much work it is to do similar tasks in many others.
More importantly, it reminded me of why it’s fun to program, when you’re starting with an idea you love and are working towards making it a reality. In fact, as he was talking, I started cooking up plans to improve my Ruby and Sinatra day planner right there.
We live in a society where it is too easy to sit back and passively accept entertainment choices as ‘ours’ somehow, without ever directly creating. We are even encouraged to define ourselves as a fan of this or that show or band, and somehow feel that we are sharing in that creation. The problem, of course, is that you’re not.
As a programmer, you can make your thoughts tangible. You can dream of something, and those dreams, a short time later, can take form, on your screen, and interact with you, respond to you, have structure and shape.
From out of nothing, something.
It starts with an idea. You sketch out a class to define it, the smaller ideas it has to contain. You go to your computer, type, type a little bit more, throw in some nice styling, and there – there it is. It’s a simple pleasure, one it’s easy to take for granted, but the amazing combination of hardware and software and our own thoughts, rolled into one, make for an exquisite, lightning-fast combination.
I can’t say that every project puts me in touch with this side of the language, or encourages me to burn the midnight oil to work out the details. Increasingly, though, I’m finding ways to connect to the parts I love about the language, and incorporate them into the language.
It’s nice to be reminded sometimes that you don’t know everything, that there’s still tons for you to learn and explore and do. Last night, the Ruby meetup did that for me.