Why the "best" programming language (usually) doesn't matter
- Klemens Morbe
- Jun 2
- 5 min read
Do you know this feeling? You scroll through LinkedIn, Medium, dev.to, Reddit, or even Instagram and—bam—another post tells you why this one language or framework is the absolute best. Everything else? Outdated, slow, insecure, or just plain trash. It reminds me of endless debates about the best music genre, the best car, or the best anime. Tastes and, more importantly, requirements differ—and nowhere does this lead to more heated discussions than in our tech bubble.
Lately, I feel like I’m landing more and more in this “bashing bubble,” where it’s all about defending your favorite language and putting others down. It’s annoying. That’s why I want to share my observations and a few thoughts with you today. Because I think we waste way too much energy on these fake battles.
Why all the noise on social media?
In the past, these discussions might have happened at the pub, at conferences, or in university seminars. Today, we have global platforms where everyone can share their opinion—and algorithms love controversy. A post titled “Why Java is dead” or “JavaScript is the only future” simply gets more clicks and engagement than a nuanced article about the pros and cons of different technologies in specific contexts.
This leads to an echo chamber effect: you follow people who confirm your own opinion, and the platforms show you more of the same. It creates a distorted picture, a kind of “us vs. them” mentality that has more to do with fan culture than with professional discourse.
Were things better in the past? A quick look back
But have these “language wars” always existed? Yes, in some way, they have. Even in the early days of computer science, there were rivalries. Think of the 1950s and 60s: Fortran for science, COBOL for business, Lisp for AI research. Each language had its domain and its fans. Later, there were heated debates between C and Pascal, or the US Department of Defense’s efforts to bring order to the chaos of hundreds of languages with Ada.
The main difference today is the volume and reach enabled by social media. The arguments are often the same, but now they’re fought out globally and in real time.
Diversity isn’t a bug, it’s a feature!
Why are there so many programming languages? Because there are countless different problems to solve! Think of your toolbox: you have a hammer for nails, a screwdriver for screws, pliers for gripping. You wouldn’t try to hammer a nail with pliers, right?
It’s the same with programming languages. Each has its strengths and weaknesses, its “sweet spots”:
JavaScript: Essential for interactive web frontends, strong on the backend with Node.js.
Python: Super readable, huge community, strong in data science, machine learning, and scripting.
Java: Robust, platform-independent (JVM), huge ecosystem, widely used in large companies for backend systems. (Yes, I like Java 😅)
C#: Microsoft’s answer to Java, strong in the Windows world, now cross-platform thanks to .NET Core, popular for game development (Unity).
C/C++: Close to the hardware, unbeatable performance, foundation for operating systems, game engines, embedded systems.
Swift/Kotlin: Modern languages for native iOS and Android development.
PHP: Still powers a huge part of the web (WordPress!), has evolved a lot (thanks to Laravel).
Go/Rust: More modern languages; Go is great for concurrent systems, Rust focuses on safety and performance without a garbage collector.
The list goes on (Ruby, Scala, TypeScript…). Look at the TIOBE or PYPL index: the top 20 are all relevant and used successfully. This shows: there’s no single best language, just many good tools for different jobs.
When the choice (maybe) matters
Okay, the choice isn’t always totally irrelevant. There are scenarios where some languages are simply a better fit or others are less suitable:
Performance-critical system programming: C or C++ are often the first choice.
Client-side web development: Not much works in the browser without JavaScript (or languages that compile to it, like TypeScript).
Massively parallel computing: Languages with good concurrency models like Go or Erlang shine here. Python can hit its limits here (though there are workarounds).
Data Science / ML: Python is the de facto standard thanks to libraries like NumPy, Pandas, Scikit-learn, TensorFlow, and PyTorch.
But even here, it’s more about “unsuitable” vs. “suitable,” not the subtle difference between two generally appropriate languages. No one would seriously use Java for a browser extension or try to write an operating system in PHP.
What really matters: Beyond syntax
If the language itself often isn’t the deciding factor, what is more important? In my experience, these points matter more:
You and your team: How well do you know the language and its ecosystem? A team that knows Java and Spring Boot inside out will likely deliver faster and better than with the “hottest” new framework that everyone still has to learn. Productivity and know-how are gold.
The ecosystem: How good are the available libraries, frameworks, and tools? Is there an active community? Is it easy to get help? A strong ecosystem can massively speed up development.
The specific task: What exactly should the software do? What are the non-functional requirements (performance, scalability, security)? The language needs to be able to solve the problem.
Maintainability & Clean Code: Can you write clean, well-structured, maintainable code with the language and chosen tools? This often depends more on the developers and established practices than the language itself. (A topic close to my heart as a Clean Code fan!)
Company context: Are there existing systems? What technologies are already in use? Sometimes consistency within the IT landscape is more important than optimizing for the “perfect” language for a single project.
Long-term support: Will the language or framework likely be maintained and developed in the future?
You see: language choice is just one factor among many—and often not even the most important.
My tip: Stay curious, but pragmatic!
Instead of getting stuck in trench wars over which language is “better,” maybe we should focus on other things:
Master your tool: Whether it’s Java, Python, C#, or JavaScript—get really good at it. Understand the concepts, strengths, and weaknesses.
Learn the principles: Concepts like Clean Code, SOLID, design patterns, and test automation are language-independent and make you a better developer, no matter what tool you use.
Be curious: Look beyond your own stack! Try another language or a new framework. It broadens your horizons and may help you discover patterns and solutions you wouldn’t see in your “home language.” (I struggle with frontend myself, but maybe I should give TypeScript a real chance?)
Focus on the problem: Ultimately, it’s about solving a problem for the user or the business. Technology is a means to an end, not an end in itself.
Respect other choices: Just because another team uses a different technology doesn’t mean they’re wrong. Maybe they had different requirements, prior knowledge, or constraints.
So don’t let the noise on social media drive you crazy. Most common programming languages are great tools for building amazing things. Choose wisely, based on your requirements and context, but don’t waste energy defending your choice as the only right one. Let’s focus on writing good software and learning from each other.
ℹ️ This post was created in collaboration with pep.digital GmbH. The content was produced as part of my professional work and is shared here with permission.
Comments