Published: October 12, 2019 • 2 min read
When people who don’t code listen to programmers talk about code, something they say is that it sounds we’re “speaking a different language”. We are! Programming is its own language, and a baffling one to listen to. In this post, I’ll try to explain this phenomenon.
Programming is not a language like JavaScript or Python; those are dialects that describe a mother tongue called Computer Science. CS is a rag-bag of names for abstract concepts like classes, functions, and state. Learning to code means learning many of these names upfront.
The names are baffling to listen to because they describe ideas that have almost no analogy in human life. They are uniquely inhuman, because few things are less human than a computer. Programming reveals just how differently a computer approaches a problem than we do. And, each name builds on top of others like a house of cards. As for the origins of these names, it’s complicated. You can trace some of them back to math, engineering, or skilled trades. Others come from academic inside jokes, misunderstandings, just plain old marketing. Some of them seem to come from nowhere.
So yes, programming is a different language. In my talks, I try to build my arguments from first principles, avoiding jargon when I can. At some point, I’ll lose the non-programmers, just like I’d get lost at a medical conference, but I try to delay that moment as long as I can.
What are your thoughts on this? Let me know!
Join 100+ engineers who subscribe for advice, commentary, and technical deep-dives into the world of software.