Reflections on “The Top 10 Reasons the Ruby Programming Language Sucks”

I guess I wasn’t aware of much time I’d spent learning how to derive meaning rather than create it. 

As a reporter, I wrote stories. I crafted a piece as accurate and elegant as I could muster, and hoped it was captivating enough to hold you in place, still, quiet, until it was over. And while writing is indeed a craft, the point of journalism is to bring meaning to ideas that already exist. Which means that what I created was only as good as its ability to explain.

As a scientist, I worked with DNA. I contributed to the creation of new ways to detect it in limited quantities. The work of a research fellow was surprisingly creative and intellectually challenging, but the point of creating wasn’t to create: it was to explore and explain objects that had always been there, waiting to be discovered.

And as I sat and reflected on my studies, my degrees, my work experience, I noticed a pattern: a lot of the roles I’ve had, however creative and interesting the experiences were, ended with me as the observer. At best, the translator. Where my impact wasn’t measured by what I made, but by how much of the existing world I could unveil.

But there’s something foreign about programming. Something new and strange that I couldn’t put my finger on until I read the deck, “The Top 10 Reasons the Ruby Programming Language Sucks” posted eight years ago. The talk highlighted the benefits of the Ruby language compared to other, older languages. It talked about the 96 standard libraries, the 900,000+ gems, the use of mixins over multiple inheritance, code blocks, and open classes. It talked about its values of  clarity and self expression. But reading through the slides, the thought that stuck with me wasn’t the power of Ruby -- it was the fact that all of this was created. And not by one person, but a collection of people, a community who defined itself by creating, adding value, and actively contributing to its own improvement. A community where being an observer was not unacceptable -- it was just wrong. And being in it means that I’m not invited to contribute, but obliged to. Where I am not a bystander, a translator, but a stakeholder. And in that role, my job is to push and pull and make and mold. And my value is not in how well I derive meaning, but how well I create it.