All Programmers Are Polyglot Programmers

DZone 's Guide to

All Programmers Are Polyglot Programmers

In reality, all modern programmers are polyglot programmers. To understand why, we need to distinguish between different types of languages and how the Software Development Industry will handle these languages in the future.

· Java Zone ·
Free Resource

First-Order Languages 

Historically, a first-order language is one that a developer in drawn to or required to develop the majority of the business logic in. These are headliner languages like Java, Scala, C/C\++, and Javascript to name a few. Many developers and companies distinguish jobs based on these languages. Job descriptions are often categorized by these languages such that a developer is hired solely on their ability to code in that language.

Second-Order Languages

There is another class of languages that are often included in job descriptions as “nice to have” but they are not the headliner language needed for the job. Languages such as XML, SQL/HQL, Bash, and YAML fit in this category with many more not listed here. Often these languages also appear in job description as a “need to have” along with their first-order language counterpart.

Frameworks That Act Like Languages

There are some prominent frameworks used today that act much like a language. They require a specific way they have to be “coded” in order to work properly in an application and require a significant amount of learning by developers to use the correctly. These frameworks are often listed in job descriptions as must have skills due to the time it takes developers to master their use much like first order programming languages. Prominent examples of these are Spring(many projects), Java Enterprise(many APIs), NodeJS( with modules), Play! Framework and AKKA.

Migration of Frameworks Dominance

As First Order Languages get more powerful, the need for large “helper” frameworks will be diminished. Functionality that used to only be available in large frameworks are now available as a library dependency. Eventually, even that library dependency may become a built-in feature of the language you are developing in. We have already seen http-based file server libraries now being a standard feature “module” in some languages and many other languages have numerous options available that can be brought in as a built-in and supported module or dependency.

Microservices Are on the Rise

With the rise of the micro-service architecture where systems are being composed of many small applications instead of a big monolith. The need for those small applications to all be written in the same language is no longer required. Each application can be written in the language that best fits the requirements for that application. In companies already using micro-services architectures, each team in given responsibility to choose the language for their application since they are responsible for maintaining that application within the company. There can be many languages in use across at organization any one time.

Developer Jobs in the Future

I believe the age of single language applications is starting to come to an end. This will require developers to become familiar and master more than one primary language. Many developers should not have a problem with picking up a few more first-order languages to develop in. In my experience, the more languages I write code in, the more it makes me a better developer. When I see new job descriptions fly through my email, I am often reminded of the following quote:

You don’t hire for skills, you hire for attitude. You can always teach skills. 

    — Simon Sinek

Every month now, I see a job description looking for a developer who is willing to learn a new language or style of programming. Proven skill from only one of a given set of older languages is required of the job. They will teach the skills they desire on the job. I believe job descriptions like this will continue to increase in the future. Any developer will the ability to write code in multiple languages will land jobs over a developer with only one first-order language skill. It may take some time, but this transition will change the landscape of the Software Development Industry. We are polyglot developers now and will be more so in the future.

akka, java, javascript, polyglot programming, programming, scala

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}