An interview with Gary Bernhardt

Our failure to destroy old artifacts leaves us with tools that don't line up with our needs.

Gary Bernhardt is a creator and destroyer of software compelled to understand both sides of heated software debates: Vim and Emacs; Python and Ruby; Git and Mercurial. He runs Destroy All Software, which publishes advanced screencasts for serious developers covering Unix, Ruby, OO design, and TDD.

Hi Gary! How you spend typical day?

It depends. On two or three days per week, I go to a studio to record Destroy All Software screencasts from 11:00 until 13:00. Then I usually head to my coworking desk for a couple hours. Non-recording days vary a lot; I could do anywhere from zero to about six hours of work. I also speak at about a conference per month, so I'm often either preparing a talk or flying to or from a conference.

How would you like to spend a typical day?

Pretty much as I do now. I wouldn't mind a larger coworking facility with private offices, though.

What software are you using the most?


Imagine World without computers. What would you do for a living?

I'd say physics, except modern physics wouldn't really be falsifiable without computers, so it wouldn't be science...

Please describe your perfect holiday.

10-15 degrees C, overcast but no rain, in as dense a city as possible. Lots of falafel nearby.

What music bands we can find in your playlist? Do you listen to music while working?

Lately I've been trying to find house music that I can respect, but it's hard. I prefer silence when working, but with other people around I need something to drown out the noise. Sometimes I hack while listening to recordings of rain and thunderstorms, which is nice.

Could you send me your new picture, exclusively for BaRuCo?

I only use my standard cake-box-on-head picture in public for consistency...

You are Creator & Destroyer of Software, what’s the story behind this?

First, I break things a lot. In 2010 I was planning on starting a photo/video blog of all the bugs I encounter. After a couple days of collecting several pictures and videos per day, I was getting even more frustrated than usual, so I stopped.

Second, I think that many of our problems come from decisions made forty or so years ago and never revisited. That doesn't mean the decisions were bad; it means that the world they were made in no longer exists. Our failure to destroy these old artifacts leaves us with tools that don't line up with our needs.

For example: our "terminals" are software emulators for old physical hardware terminals. Usually, they're emulating VT100, a terminal model released by DEC in 1978. Its processor was an Intel 8080. We're talking about a CPU that was in a DIP package, like a 555 timer or something. Its pins are so far apart that you could easily hand-solder them while drunk. It vexes me that my laptop has two 1.8 GHz cores—this amazing hardware—and it's using them to emulate a 34-year-old terminal with a 2 MHz CPU. I invite anyone skeptical of the practical ramifications of this to SSH into a new server and try to get 256 colors working in Vim. You're gonna have a bad time.

As you can imagine, I could go on at length on this topic...

organized by :codegram