I heard it in a college lecture about Haskell.

Haskell is a programming language akin to Latin: Learning either language expands your vocabulary and technical skills. But programmers use Haskell as often as slam poets compose dactylic hexameter.*

My professor could have understudied for the archetypal wise man: He had snowy hair, a beard, and glasses that begged to be called “spectacles.” Pointing at the code he’d projected onto a screen, he was lecturing about input/output, or I/O. The user inputs a request, and the program outputs a response.

That autumn was consuming me. Computer-science and physics courses had filled my plate. Atop the plate, I had thunked the soup tureen known as “XKCD Comes to Dartmouth”: I was coordinating a visit by Randall Munroe, creator of the science webcomic xkcd, to my college. The visit was to include a cake shaped like the Internet, a robotic velociraptor, and playpen balls.  The output I’d promised felt offputting.

My professor knew. We sat in his office for hours each week, dispatching my questions about recursion and monads and complexity. His input shaped the functional-programming skills I apply today, and my input shaped his lecture notes. He promised to attend my event.

Most objects coded in Haskell, my professor reminded us in that lecture, remain static. The Haskell world never changes. Even the objects called “variables” behave like constants. Exceptions, my professor said, crop up in I/O. Users can affect a program through objects called “actions.”

“Actions,” he said, “do change the world.”

I caught my breath. What a zinger, I thought. What a moral. What a lesson for the ages—and from the mouths of computer scientists.

My professor had no idea. He swanned on about I/O without changing tone.

That December, I gave my professor a plaque that read, “Actions do change the world.” Around his slogan, I’d littered illustrations of fractals, Pascal’s triangle, and other subjects we’d studied. My professor’s actions had changed my world for the better.

Drysdale photo 2

You can change the world by writing code that revolutionizes physics or finance. You can change the world by writing code that limps through tasks but improves your understanding. You can change the world by helping someone understand code. You can change the world by understanding someone.

A new year is beginning. Which actions will you take?

 

*Not that I recommend studying Haskell to boost your verbal SAT score.