Compiling Empathy

Thanks to David Blue, I've discovered a great podcast called Command Line Heroes. Just wanted to note a moment fromthe second episode of the second season that highlights the amazing work of Rear Admiral Grace Hopper. I'll let Saron Yitbarek, host of the podcast, describe her:

[Grace Hopper] was the god mother of independent programming languages. The woman who used compilers so we could use human language instead of mathematical symbols.

This led into a fascinating discussion between Yitbarek and write/musician Claire Evans about compilers as empathy driving machines. Yitbarek begins...

The spirit of the compiler that does all that work, it's motivated by a sense of empathy and understanding.

Claire's got a theory about why Hopper was the woman to deliver that change. It has to do with Hopper's work during World War II.

Enter Evans' theory:

[Hopper] was doing mine sweeping problems, ballistics problems, oceanography problems. She was applying all of these different, diverse disciplines representing all the violent, chaotic, messy realities of the war and translating them into programs to run on the Mark I computer.

She knew how to do that translation between languages. And I don't mean computer languages, I mean like human languages. She understood how to listen to somebody who was presenting a complex problem, try to understand where they were coming from, what the constraints and affordances of their discipline was and then translate that into something that the computer could understand.

This leads to Yitbarek's conclusion:

Compiling as an act of empathy and understanding. I think we can all keep that in mind when we learn new languages, or wonder why something isn't compiling at all. The compiler's job should be to meet your language where it lives.

Grace Hopper knew that once humans could learn to speak programming languages, and once compilers began translating our intentions into machine language, well, it was like opening the floodgates.

I love this strong connection between Hopper, empathy, and how the compiler opened up the possibility of programming languages of all stripes. This reminds me of a recent episode of Screaming with the Cloud where Jess Schalz talks about empathy driven development as a workflow engineer:

Rather than test driven development, I tend to do empathy driven development because that actually guides the design of my product. So, I tend to ask people what problem they're trying to solve, and how that problem makes them feel, and then I can actually address the root of the problem because nine times out of ten in my experience, whatever somebody is actually frustrated with is not necessarily the problem they said they're trying to solve. So, it lets me view their problems in a very human way that I think is very valuable.

Again this idea of meeting people where they are. Empathy keeps popping up in software and for good reason. How can we get more of it?