Learning Ruby (again)

Things are going a bit better than the last time I tried to pick up Ruby. Part of it is just the fact that I’m not learning it this time for work, but kind-of on the side. But I think a big part of it is just getting my feet wet with just the Ruby language rather than Rails. There’s also the fact that two years ago, my main language was Java, but now I’ve switched back to  doing more Python hacking and so have been more comfortable right off the bat with things like dynamic typing and not worrying about things under the hood (to the extent that a Java programmer worries about things under the hood).

On the other hand, some things are already starting to annoy.  Things don’t seem to be as bad as with Perl yet, but the ugly head of TMTOWTDI is already evident. It’s an irreconcilable difference for a dyed-in-the-wool “there’s one way to do it” guy like me.  I long for the velvet fascism of strict indentation. Not to mention that the sheer impudence of Ruby’s syntactic sugar is more than a bit galling; I mean, my god, have some decency.

On the other other hand, Ruby does a better job of breaking some of my Java conventions. My Python designs tend to rely heavily on protocols and more hierarchical inheritance; with Ruby, I’ve been having some fun with mixins. I’m also looking forward to working with Ruby’s reportedly more robust closure support.

On the balance, I feel like it’s a language that I can actually get to enjoy. But this tiny sapling of optimism is overwhelmed by the staggering volcanic firestorm of apprehension at the rough beast of Rails, slouching inexorably toward us.

Shane works on the history of computing and the impact of digital technology on culture and politics. His dissertation, "Kingdom of Code: Cryptography and the New Privacy" tracks the development of civilian encryption technology and the emergence of cryptography as an academic field of study, the debates over crypto regulation, and the concomitant construction of a new, far more expansive…

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Archives