How many programming languages do you need?

Abdelhaq ELAIBI
OCP digital factory
3 min readOct 9, 2020

Lately, I was trying to learn Go Language. I want to compare it with other languages I already know. In our organization, we’re using mainly Java, C#, and Javascript. I was always wondering if using one language to support business is better or we need to be polyglots!

Even if you are a tech company or other industry, you are dealing with technology and programming languages, and you certainly face a dilemma when it comes to choosing a programming language. At the enterprise level, it makes sense to standardize and try to have valid and approved languages, ​​in order to optimize maintenance costs. But on the other hand, many of us recognize that developers are more productive and more comfortable using the language they are experts at.

The decision is not objective all the time, it’s personal too! for some, they like to gain more expertise in one area/technology, so they will be tempting to choose one programming language. Others are more curious and will try to learn new ones every time!

This article explores ways of deciding how many programming languages are right for your organization to support. I’m sure there’s no single answer that works for all organizations :) but we’ll try to give you more context so you can decide.

One Language

I meet a lot of clients and developers who believe that there really is one best choice when it comes to languages. It was common to see organizations characterize themselves as Java or C# houses ;). In the past, COBOL was ruling, more recently, we see this pattern with Node.js being used everywhere.

Manager will all tend to have one language, so they can mutualize tooling and expertise. DevOps practices will be simple and easy for them, they will reduce costs. But this model has some limits.

Pragmatic way: general & special cases

I believe that choosing the right tool for the right job is more productive than having one for all.

On the other hand, polyglot programming can lead to a chaos situation, if your best programmer use C to write some system and he is the only one who knows that language, he’ll be wasting time on maintenance, not working on the next big product (I know someone who loves to do it in my organization :)).

Technology enterprises work for a variety of clients, they need to have polyglot developers, so they can address multiple projects and clients. But for other enterprises, it may make more sense to have a favored language or perhaps a small set of languages for general-purpose application development.

Nonetheless, standardize doesn’t mean you have to rule out experimentation. Some cases need to test other languages to be more efficient.

For example, using Python or R in datascience seems to be more convenient, you will find multiples libraries helping you to deal with complex data projects.

Sometimes, to attract talented programmers and developers you may need to start experimenting with other languages, I have seen this in the past: multiple clients moved away from their Microsoft Csharp standard language to other languages like java or javascript so they can recruit talent.

As one of my friends said: A programming language is like human language it is a way to talk machine and there will be more than we can think in the future (in our houses, work, school..it happen that all of them are today in the same place :) ), so just learn C or python and you will be able to use anyone with a cookbook in hand.

I believe that having a Technology Referential in the enterprise will help a lot to decide which language to use, it must be a living document that assesses your set of technologies/languages. Creating this Referential must be a collaborative work when everyone is encouraged to give his advice and experience feedback.

--

--