A magazine about programmers, code, and society. Written by and for humans since 2018.

Gary Bernhardt

One of the most visible side-effects of specialization is that we miss on interesting things existing in other technical galaxies. This is one of the main goals of this magazine; to point to stars in other locations of the sky and let people discover amazing new people. If you are not in the web, JavaScript, or Ruby galaxies, you might have missed on Gary Bernhardt, and that would be too bad.

Let us start by some quick pointers: his website is literally titled “Destroy All Software.” But I would not say that he is destroying it, but rather disassembling it for us to learn more about its internals, making it more accessible to everyone. The idea of a critical view on the code we write every day is a clever and much needed perspective.

Among the various treasures in Gary’s website, there is a short video (really short, merely four minutes and seventeen seconds) called Wat; a “lightning talk” (perfect moniker) given at the 2012 CodeMash conference. I have already mentioned Wat in a previous article this year, in issue 43 when we talked about typing.

Watch it (again, if needed,) then wipe out those tears of laughter, and keep on reading. I will wait.

Wat is about all those little things in programming with dynamic languages that make our lives as developers miserable interesting. Those little quirks that make JavaScript and Ruby surprising, sometimes not really in a positive way. But laughter is probably the only natural mechanism we have for conjuring the demons inside; we laugh of terrible things, really. Some of which are way worse than getting NaN when adding two JavaScript objects. These languages might be baffling, certainly, distressing, maybe, but certainly funny at the end of the day.

We laugh so that we do not cry. This is the core of our craft, and the reality of our industry.

Complete the discovery of Gary by reading the source code of another kind of geek joke, this time a base object for Ruby; one that includes all methods of all classes in the Ruby runtime. And please, please, sense the irony when Gary says in the README that you should use this in your system. Please.

A prolific and happy Vim user, Gary used to ran his own software conference in Seattle WA until the pandemic hit: Deconstruct. Hopefully it will be back again soon. In the meantime he teaches the world how to execute programs in TypeScript, JavaScript, and SQL, all in a browser-based environment ready for beginners to be immediately productive, using a clever combination of text, live coding, and a subrepticious use of unit testing that is as subtle as it is brilliant. Testing is a topic dear to Gary, one he has touched at least twice, once at SCNA 2012, and then at Ruby Conf 12, either of which you should watch.

What more? A full compendium of computer concepts; a catalog of screencasts; and the complete history of JavaScript from 1995 to… 2035.

So, to paraphrase Simon Sinek: start with Wat. And do not miss the rest.

Cover snapshot by the author.


Back to top