Friday, December 8, 2017

Imperative Programming

All Programming was originally imperative - a series of orders to the computer: do this, do this, and then do this - in extreme detail, in a machine language the computer could understand. But most people could not understand at all.

The main drawback here, was not that People could not understand it - but that it was a huge amount of work for the Programmer. A higher level of programming language was needed - where the Programmer could work with abstractions (such as variables) and a compiler would translate this into a lower-level machine language.

The most successful of these higher-level languages was C - and I was an expert at this, back in the Eighties. It wasn't too hard to learn, and could do nearly everything for the Computer - but almost nothing for the User.

Gradually, over the next twenty years - a User Interface was developed (such as Microsoft's Windows) so that people with only a minimal understanding of the Computer, could use it easily. They could use a mouse to point and click on buttons, and get things done. This turned the User into a higher-level being - something they did not mind at all.

The Java programming language appeared in the Nineties - and was a huge success. It could work with the Internet easily. and it could be used on any computer! You could write your program once, and run it anywhere. This is now used on most cars.

But it still consisted of a number of commands. And these commands could get in each other's way - and produce some very nasty bugs!

The solution here is Functional Programming, that I am now learning (F#, in fact). You tell the computer what to do - but not how to do it. It will then do what you want - and take care of the details itself.

Believe it or not - it works!

No comments:

Post a Comment