Should you learn an interpreted, or compiled language?
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
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.