Confronting the Avalanche of Challenges
Throughout my programming career, I realized that opting for an ill-suited programming language could set off a disastrous cascade of obstacles: from obsolete libraries to the quest for engineers proficient in the chosen language.
The Common Decision-Making Approach
Startups often opt for a programming language based on the tech founders’ or first engineers’ prior experience with a specific framework.
For instance, a Python aficionado wouldn’t build a CMS from scratch but would use a framework like Django.
I haven’t yet seen a startup selecting a programming language strategically.
Initially, the priority is to hack something quickly and ship a prototype, which means using the framework the engineers know best.
Microservices and Serverless Architectures: Shifting Perspectives
The debate over a company’s “best language” has become less significant with the emergence of microservices and serverless architecture.
You can encapsulate services, making the chosen language less critical.
The Influence on Team Productivity
There’s a hidden reality: the programming language you pick will affect your team’s productivity, potentially by a factor of 5x or more.
For example, Paul Graham presumably gained an edge over other e-commerce platform builders by employing Lisp in his Viaweb product.
However, dedicating a month to debating or testing programming languages isn’t a practical approach either.
Lifespans of Renowned Programming Languages
Regardless of what language you choose, you can easily see that they will stay for the long term:
- C – Introduced in 1972: 51 years
- C++ – Introduced in 1985: 38 years
- Java – Introduced in 1995: 28 years
- Python – Introduced in 1991: 32 years
- C# – Introduced in 2000: 23 years
- PHP – Introduced in 1994: 29 years
- Ruby – Introduced in 1995: 28 years
- Swift – Introduced in 2014: 9 years
- Go (Golang) – Introduced in 2009: 14 years
Identifying the True Essence of Choosing a Programming Language
So, what are the right criteria for selecting a programming language? Is it longevity, scalability, or familiarity?
The most vital aspect is speed: the speed of learning the new language, the speed of coding in the new language, and the speed of adapting and refactoring your code.
While a scalable language was crucial in the past, it’s less important in today’s seemingly infinite CPU power and storage capacity.