Hi there! I’m Bjorn, or B, and I take great pleasure in pissing people off. This is not that, however, but I chose this title for a specific reason.
You see, I have written code since the 80s, in more languages than I care to remember and I have realized one thing.
It never matters which language you choose.
Let me explain.
Programming is Not About Code
I know, most of what you read about programming is about how to write code, and to an extent, of course it is.
However, would you argue that writing Harry Potter is about English? Would you say that the thing that makes The Lord of the Rings such a great book is that it was written in English?
I doubt anyone seriously would argue that. The books are great because of the storytelling, the excitement, the ability to capture your attention and keep it for hundreds of pages.
That is the art of writing literature. The actual words on paper, or screen, is just the end result of something much more complex.
That is also where our art, as programmers, lie. Everything that’s not code.
This leads us to a fundamental truth about our profession; Programming is about Communication
Communication
You all know the famous cheer now, right?
2,4,6,8….
…how do we communicate?
I may have hung out with the wrong cheerleaders.
You may think that programming as communication is something that’s modern, in that we only recently, relatively, had the internet or even networks on which we could communicate.
However, this is not the only form of communication we do.
- We communicate our intent to a computer, to a hard drive, and to any peripheral like a screen.
- We communicate the capabilities of our software to our users
- We communicate with other machines when we are part of a network, such as sending messages or data to a server
You can probably imagine that when we communicate like this, we actually communicate with a huge array of languages.
Most of the time, we might not even know which language someone speaks-only what they expect us to do.
You don’t know in what language the backend of Facebook is written, for example, or that obscure Glacier service at AWS. And frankly, you don’t need to know.
You need to know how to communicate with those components, which you might do in JSON with a POST message, or maybe it’s XML, or a REST API. Sometimes, you can even choose.
Can you write XML in C#? Of course you can. JavaScript? Python? Indeed!
Is it important which language you use to call that REST endpoint? Not at all. The importance is knowing which endpoint to call, what it expects, and what you can expect in return.
Language Choice Matters Less Than What We Say
The point of this article, then, is to argue that it does not matter which language you use. That’s why, to me, C# is better, because I’m intimately familiar with it after writing it for more than 20 years.
It means that, for me, Python is horrible, because I don’t have nearly the same amount of experience and thus it takes me a lot longer to accomplish things in Python than in .NET
Of course, when I say that language doesn’t matter, it does not mean that all languages are equal.
Python has, for example, far more support for machine learning libraries than .NET. Meanwhile, .NET has better support for game development or arguably a better IDE and tooling support in Visual Studio.
But here is the kicker. With the advent of AI and capable LLMs, the choice of language becomes even less important. Once you understand what to build, you can just ask an LLM to build it for you.
As such, understanding how to communicate is far, far more important than learning to speak another language.