Saturday, 27 February 2021

An idea re-visited

 A long time ago after attending a rather good talk all about java refle.x, I don't think the framework exists anymore but the idea resonated with me.

Essentially the idea was that a program could consist of any number of units that would operate concurrently, with the notable distinction between concurrency and parrallelism.

This prompted me to make the observation that protocol is king, not the language.  The reason for my sweeping statement was the polyglot nature of the refle.x framework, any of those units could be written in whatever language they chose to be.

Now I look back whilst also looking forward, I can see there are many languages and there are always many more coming up in the ranks.  I recently looked at Go, it's a nice language, but the trouble is they are all nice and when doing certain things they all look pretty, my issue is none of them achieve something radical or profound, it's just repackaging the same ol' same ol'.

I don't mean this to sound derogatory, but I am yet to find something that can be achieved in one language that cannot be achieved in another with altered syntax.

So I started to look at transpilers and realised that essentially all languages can be transpiled down to some very simple language.  This again got me thinking about that article from 2015 the polyglot of refle.x was achieved by the fact that it had a strict messaging but what's to stop all languages being transpiled to some base language.  If that were possible then language really does become irrelevant as all languages can be converted to each other.

What's more, I now think the pursuit of new languages has actually served to stagnate innovation as necessity being the route of invention I believe that people have been creating new languages in the belief that this is what they need when all they need is to have a good transpiler, they could even define their own language as long as it had rules to transpile it to the base language it really wouldn't matter.  This way a lot of the languages invented over the last 10 years would probably not have been needed and attention could've been turned to providing some innovative new paradigm rather than yet another way to write instructions that are, at some level at least, semantically the same as it's predecessor.

With this in mind I think it's time to actually put my money where my mouth is and run through a few examples whereby the language is flip-flopped without changing the intent of the actual program.