Evolution of Programming Languages

A change is gradual

Disclaimer : The content of this blog are my views and understanding of the topic. I do not intend to demean anything or anyone. I am only trying to share my views on the topic so that you will get a different thought process and angle to look at this topic.

We started off well with logical gates to program a computer, to perform some pre-defined tasks. It was the need of industrial revolution to automate mundane tasks or repetitive tasks. We could do that because all repetitive tasks have some pattern which can be translated into a program. Slowly we created languages to ease our understanding of things so that we could commercialise the programming part of it. We needed people to quickly learn to program a computer. Hence the evolution took place from Assembly Language to C or C++. We wanted more from computers to solve some very complex problems. To map those complex problems we created Object Oriented Languages. Now when we had many skilled software developers we created something called functional languages which are more concise. Could you see a pattern here ? We are moving up the ladder towards more concise way of programming a computer. We call the current trend as high level languages having foundation of low level languages.

Still when we look at a software program whether its written in Java, Scala or Groovy, it feels as if we are handling state and behaviour via some logical rules. We still cannot program a computer using a simple plain English language ( or any human language for that matter ). We get the requirement from business to write a program. We translate the requirement into a bunch of logical state behaviour. I agree we have some domain specific languages ( DSL ) which are very good. SQL for that matter. It seems to be a language which is closer to human communication ( SELECT * FROM TABLE Employee ). Can we think of a way that we could write a program which is a simple plain English paragraph ?

Do we need to think differently on this ? We have always focused on purely technical aspect while evolving the languages. Can we consider simplicity as a factor ? If Languages like Gherkin can be created then can we not create a language which will help us write a program as simply as I am writing this article. Now based on our logical analysis someone will think : What is the current need that is triggering this ? I think we are striving hard to communicate with computers. Technologies are evolving rapidly. Hence something which we programmed today may not be relevant in the near future. How could we bridge the gap between requirements in plain English to a Technical Computer Program. The gap is not only driven by mapping factor but also has a time factor associated. This achievement will surely reduce the time to market.

Think it over !