Stay on top of your game — be a Polyglot Developer

The advantages of knowing multiple programming languages

DPG Media
Level Up Coding

--

A plea by Gert Leenders, AWS Cloud Solution Architect at DPG Media

Here’s my statement: I’m convinced that every programmer should know more than one programming language. In other words, when it comes to programming languages, a developer should be a Polyglot.

At DPG Media we have an IT Handbook — our little IT bible ;-) A key part of the handbook is standards; standards help us improve interchangeability within the company and between teams. One of the primers is about the languages DPG Media embraces — languages that the development teams support and of which we have a huge company knowledge base. One of the parts I like the most about the IT handbook is that it’s community-driven and continuously evolving. So everyone within DPG Media can contribute and share new learnings. So if you learn a new language and it’s not in the handbook, you know where to put it ;)

Main vs. Secondary language

To make things easier, let me clarify some of the vocabulary used for the article’s remainder.

I believe that there’s always one programming language that one prefers at any given point in time. I call this a person’s “main” programming language. The programming languages someone knows besides his main programming language I call “secondary” languages. Also, during a lifetime, your main programming language could change. I think that is normal, and I have seen various reasons that explain why it happens.

The expert argument

A common argument in discussions about being a Polyglot Developer is about the price you pay for knowing more than one language. Some people are convinced that learning another programming language comes at the cost of gaining less expertise in their main language. This argument’s reasoning is that time spent learning another language can’t be spent on harvesting extra knowledge on your main language.

I don’t follow that train of thought. On the contrary, I see another analogy: when practicing sports, it’s known that practicing one sport could make you better in another. Sure, you’re not going to win gold medals in both, and probably darts won’t make you a better swimmer. On the other hand, as a climber, I know that yoga enhances core stability and flexibility. So practicing yoga makes me a better climber. In summary, learning an additional language often also improves other programming language skills.

A bigger toolbox

Furthermore, I’m convinced that learning multiple languages gives you a bigger toolbox. It broadens your horizon and may help you to look differently at certain things.

Compare it with this everyday life example: if you’ve ever used a screwdriver, you’re familiar with cross-headed screws. All cross-headed screws look the same at first sight, and it seems that you can handle all those screws with just one screwdriver. You struggle a bit to tighten or loosen a screw from time to time, but most of the time you get the job done with just your one screwdriver.

Then, one day at the tool shop, snooping around all those fancy screwdrivers, you learn a new truth: it seems that not all cross-headed screws are the same after all. First, you discover that the screwdriver you currently have is a Philips one (PH). Secondly, you decide to buy its twin brother, the Pozidriv (PZ) screwdriver., Suddenly, you see which screwdriver fits best to a particular screw; although they look quite similar, they are not interchangeable. If you were always wondering what PH and PZ meant on your screwdriver, now you know 😉. With this extra knowledge and an extra tool, next time you see a cross-headed screw: you will do a better job. The same is true when you know multiple programming languages.

There’s no price to pay

So no, I don’t see the price tag on learning an additional language. Will you equally excel in all? Probably not, but I don’t think that should be your goal. Will it teach you something extra about your main programming language? I’m pretty sure it will. Knowing a new language will reveal the differences between them. In their turn, those differences will make you wonder why something is done in another way and learn the consequences of those choices.

Let us conclude with a real-life example. The burden of a small CLI — written in python — I used was in the installation and upgrade process. On every snowflakes machine, the installation had its problems, and with every new release, another pile of issues surfaced.

If Go is part of your toolbox, you immediately see its advantage in the above scenario. Go allows compiling its artifacts to a self-contained binary. After compilation, you can rest assured, the binary will smoothly run on every machine you compiled it for.

So that’s what I did, I ported the Python CLI to a Go version. With this new version wrapped in a different artifact type, we no longer have to worry about changing runtime environments or third party dependencies. It’s a perfect example of picking the right tool for the job. Being a Polyglot Developer is one way to get there.

I’m curious what your stand on learning multiple languages is. Are you up for it, or would you rather stick to one?

--

--

We are the tech team behind the digital products of all DPG Media’s brands and internal apps!