This article was originally published on .cult by Doug Neale. .cult is a media platform for untold developer stories, where developers can read content around the softer side of development and watch documentaries about the tech they love. You can read this original piece here.
“I’m a ruby developer!”
“I hate javascript!”
“Functional languages only!”
Most developers would have heard boasts like these. In a world of endless languages and frameworks, it makes sense that some of us would choose our favourite stack and stick to that alone. But trends in the industry suggest that the rise of polyglot programming may be putting these developers at an increasing disadvantage.
What is polyglot programming?
Polyglot programming is generally defined as “the practice of writing code in multiple languages to capture additional functionality and efficiency not available in a single language.”
Why polyglot programming?
This might not seem like anything new in the world of web applications, which involves a frontend-backend stack. But in more recent years, the term has referred to the practice of adopting multiple stacks — even within the same organisation.
In the past, the common view was that having a uniform ecosystem is better than the overhead of a variety of frameworks. Now, many believe that it’s better to sacrifice some consistency if it means using the right tool for the right job. This is further catalysed by the widespread adoption of microservices, where multiple, independently-deployable applications exist for the same product, each with their own requirements.
For example, Ruby on Rails is a great choice to build a standard web application. But a processing-intensive service would benefit from Golang’s efficiency. Or for something simple, just going with Javascript may be an easy option, thanks to its huge community and ubiquitous tooling. Embracing polyglot programming means having the flexibility to make these choices.
An important and growing trend
In their bi-annual report of technology industry trends, ThoughtWorks strongly recommended adopting a polyglot architecture last year, after keeping it cautiously optional for over a decade. The consultancy now believes “promoting a few languages that support different ecosystems or language features is important for … developers to have the right tools to solve the problem at hand.”
These insights reflect what’s happening in the industry. A study released by CodingDojo in 2018 revealed that almost none of the Fortune 25 companies worked in a single language, many using multiple back-end frameworks. And it’s not just the big enterprises too – Netflix has been very public about its polyglot codebase, even releasing a polyglot notebook for data analysis last year.
Staying relevant in a polyglot’s world
All this means it’s more important than ever for developers to be adaptable. Reflecting on the study, CodingDojo stated: “While specific jobs might focus on a particular language, this research shows that a single language could be a long term dead-end. Aspiring and existing developers must learn coding’s common building blocks and ultimately become fluent in multiple languages to have the adaptability and flexibility for a successful career.”
This may sound daunting, but the key here is to focus on the common building blocks of all software technologies. Often, developers are concerned that expanding into new stacks will spread their knowledge too thin, but the opposite is true. Learning new technologies produces a stronger understanding of the underlying principles that apply to them all. The result is a more well-rounded, adaptable engineer.
Along with this, you may need to find a workplace that embraces a polyglot architecture — or better yet, influences your current one. After all, being ready to drop your new Kotlin skills doesn’t help if you’re still stuck in a dead-end, Java-only job.
Put yourself in an environment that taps into the benefits of many languages and push yourself to learn them. Then you can boastfully say “I’m a polyglot programmer.”
Published July 7, 2020 — 06:30 UTC