Why the proliferation of computer languages?


There has always been a love of computer language creation. Last century the languages writers were severely limited by the hardware. C/C++ even has an asm keyword to embed assembly language directly in the C code. In reviewing Haskell recently I noted a number of language constructs designed to take advantage of and rely upon CPU architecture.

Getting a language ready for the main-stream is a mammoth task – requiring the backing of a large group. FORTRAN was the darling of engineers and scientists; COBOL the same for financials. Pascal started as a teaching language until students demanded to use it in their jobs after graduation. C was a good assembler replacement that allowed some level of portability as well as efficiency. With OO , C++ gave the best of both worlds. Java and later C# took many C developers, running in a managed environment (JVM/CLR) to better protect the system from developer errors – particularly memory access and leaks.

As more bright people gained access to computing power, more languages were born – such as Python and Ruby.

Fast forward to 2015…

Jeremy Ashkenas on his CoffeeScript github wiki provides a community maintained list of over 250 languages that compile to JavaScript. Haven’t you always wanted to write in COBOL on your browser?

There are the well-known players such as

CoffeeScript
Dart
TypeScript
Elm

and transpilers for every language that made the main-stream.

I am particularly fascinated by Amber – a Smalltalk inspired system. When you run it up it looks exactly like the first Smalltalk IDE I tried in the 80’s. I hope that this time I can find the time to learn from it.

So, what is the point to all these varieties. Consider natural selection. The survivors are those best suited for the environment – or those that fit a small specialised niche.

I also believe that all developers benefit from learning different languages. The value of different perspectives cannot be minimised.

I believe there is another reason for the proliferation. Anyone who has written their own transpiler/compiler/interpreter has a better understanding of the others they use. Writing to JavaScript makes this possible for a more software designers than having to compile to something lower such as the JVM or machine code.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s