Should you learn an interpreted, or compiled language?

Miguel Mendez
Nothing but the ObjectiveTruth
2 min readJul 22, 2017

Compiled and interpreted languages each have their purpose all good developers should know a language well in each space

Computational Religious Wars

Heated debates can come when you ask developers their favorite language and in my experience it comes down to what is the target. In other words, what is the end goal of what they are doing.

Researchers are big into interpreted languages, because the target for them is the data. The program they are writing is merely a stepping stone to transform their data.

Production facing developers are often big into compiled languages, because for them, the target is the program. The data is transient. That statement alone conjures up the stateless software design movement.

Think about it

Interpreted languages are often regarded as simple, no nonsense languages, but are shunned for being too slow to be used for any “real work”

Compiled languages are often regarded as taking too long to develop for and with too many features that result in time wasted getting everything just right.

Which should you learn? The real answer is BOTH

simplified illustration of compiled vs interpreted languages, courtesy of http://ikajic.github.io/starting-with-python/#/

Below I explore the 2 use cases for each

Rapid Prototyping and Research

Popular Languages: Python, JavaScript, Ruby, etc

When you need to be first to market or you’re creating something quickly to verify a proof of concept; this is the time to use an interpreted language. Everything is implicit which means you don’t have to align types and can focus quickly on the “happy path

Production Deployments

Popular Languages: Java, C++, typescript, etc

When you need a production ready system that needs to run well for a few years, this is the perfect usage for a compiled language. The strong typed compiler acts as a theorem and your program is a proof of that theorem. Just like math, a proof won’t hold if you ignore an edge case.

The reason you should learn one of each is you want to be able to recognize when you need to build something that will be used only for a short time vs when it is going to be used heavily.

--

--