While it's not the most original question, it's something that I think about given what seems is the the introduction of a new programming language every day. Does the world really need Go
, or Ceylon
When I was 13, I received a TRS-80 system with a whopping 4KB of memory. The languages available were quite limited; BASIC, Pascal, or T-Bug (the Z-80 monitor). In the mid-80's when I entered the workforce, the language variety grew (as did their complexity). In the embedded space, the languages of the day were Ada
, and my timeless favorite, C.
Even at this time, engineers debated whether so many languages were needed. Today, the options have grown even further (Java
, etc.). Part of this growth may be based upon infrastructures which can simplify language implementation (such as the Low Level Virtual Machine, or LLVM
project, and the Java Virtual Machine
). Language paradigms have grown also, from the traditional imperative to the object-oriented and functional approaches.
On one hand, it's great to see a new approach or twist that an emerging language brings. On the other hand, if there were less languages, perhaps the ecosystem for those languages (tools, libraries, documentation, etc.) could be more mature given less diversity?
On this Father's day, I can recall countless times my Dad commenting on my choice of a wrench when a socket would have been more efficient. Languages are the same way -- you use the right tool for the job. In the end, I'm happy to see a constant stream of languages emerge from the open source community. While not all of these languages will be broadly used and successful, having more tools available only helps us to be better engineers. Languages are a lens through which we see and solve problems. A growing space of languages means more options and can never be a bad thing.