Programming humans
While working on the slides for the talk I gave a few weeks ago, it occurred to me that writing and coding have more than a few things in common. I originally planned to speak a bit about that but had to take it out for lack of space. I’ll make a post instead, this one.
Thinks in common
Language
Both writing and coding use a language. Writing happens in any of the hundreds of languages people speak all over the world. Coding is done in synthetic languages that are mostly inspired by English.
Rules
Both have rules. Speaking on general terms, coding has strict rules because the computer needs to parse it unequivocally—the developer’s intention must be defined with mathematical accuracy. Human languages also have rules, but they are looser, ever-changing, and don’t always make logical sense. Rules are lax because humans can interpret and make assumptions. We can use this extra bandwidth to communicate on a deeper level.
Movement
With this I say that both do something. Writing tells a story, shares an idea (like I’m doing now), or argues about an opinion. After reading, the reader may have a new thing to consider (even if they don’t agree) or know how to do something they didn’t know before. Whether as a book, as a script for a movie, or a screenplay, writing moves people.
The same goes for code. Programs move the world, and we wouldn’t be able to live here without them.
Virtues
Coding and writing also share some virtues. Simplicity and clarity come to mind—simple trumps complex in both writing and coding. Style and elegance are harder to define, but we know it when they see it.
Humans have minds
Coding is one of the most complicated fields anyone can get in these days. But at least computers don’t have their own minds (although, sometimes they seem to do).
Humans will pick and choose. They won’t read boring things. So not only do writers must be clear, but they also must pique the reader’s interest and give them something of value.
Language: the I/O of the mind
Even though writing and coding touch on many points. Both activities need very different skillsets. Otherwise, playwrights would be the best software engineers, and all developers would be bestsellers authors (many are).
Like a clockmaker quietly putting together a watch, developers’ primary skills are knowledge and logic. Every piece of code must work in a very definite way, and there is no room for mistakes.
To me, a writer is a bit closer to a musician. They have more freedom, they have more options, but their prose must still be ruled by logic. It also—like a composer—must be guided by a kind of metric. One reads with the ear.
Salute your fellow writer
If you’re a dev, the next time you see a writer, give them a nod and a hat tip. You have more in common with them than you think.
-Tomas