Writing Code Explained to Writers

My cousin-in-law is a talented playwright and I had this notion after he shared some of his work with us.

It occurred to me that an author of software has all the same fun as an author of books or plays. We get to create worlds out of thin air. We populate it with actors and define rules dictating how they interact, together and with the rest of the environment. Creating software is that same fun as a traditional author, with the additional benefit that all we have to do once we’re done writing the code is, simply, to hit Run.

Imagine that, writing a short story or a novel, and then just tapping a button and suddenly your story and your characters come to life in front of you like a play or a movie. There is no production phase, getting the financing, finding the right people, the actors, rehearsing, etc, before you can see what you wrote. No, all you have to do is hit Run. And it… plays. Instantly.

That’s why writing code is so much fun and so addicting.

Automatic Code Degeneration

At first I didn’t understand why some software developers are excited about AI code generation. If the stated goal is to make them obsolete and take away their very livelihood, why are they all for it?

Take authors, people who write books for a living. Should they be excited that an LLM can write an entire novel faster and more automatically than they can? No way. The act of creation, of sharing their humanity and lived experience is central to authoring books. Without that careful crafting of the words, there is no outlet anymore.

So what’s the difference? Me, I’ve always seen writing code as similar to authoring words. Coding is writing. It’s an act of creation, of crafting abstract ideas into a consistent whole that other people find useful. It’s a manifestation of the fact that I was here and I produced a collection of words that mean something.

And thinking about this, I’ve come to the overly simplified theory that there are broadly two kinds of software developers: those who like the art of writing code, and those who see it as an obstacle. The former are in this profession for the love of designing and building and tweaking and solving puzzles until they get everything right. The latter are more interested in the result, in the fact that software can exist one moment when it didn’t before, and they have less regard for how it got made.

So given the choice, would I prefer to use software made by people who used every shortcut possible to get a product they can profit from? Or by people who love the craft of designing and coding and solving human problems?

The latter, hands down.