Wednesday, July 15, 2009

A Very Short History of Object-Oriented Programming Languages.

After a little research, here is a rough history of Object-Oriented Programming Languages for those of you that are interested (anyone? :-) )

'SketchPad' Program written by Ivan Edward Sutherland in 1961 - with some influence by Douglas T.Ross from the Lincoln Laboratory. Sketchpad was the first program to implement of 'class' and 'instance-based' inheritance (although not called classes and objects at the time) and abstraction through a graphical interface (the pre-cursor and influence on Xero-PARC and the Mac/Windows Graphical User Interface).

It's pretty amazing to think that in 1961 a program existed that enabled the user to create drawings on-screen with shape 'objects' and contraints that could be applied to your drawing. You could drag 'n' drop shapes and it even had the concept of a graphical 'button' which you could press to get it to execute your command. It used the pre-cursor to the mouse which was a light-pen. This was truly an amazing and ground-breaking program which has had a massive influence on OOP and OOD.

See the original live demo of Sketchpad (in two parts). You can see how Graphical User Interfaces evolved from Sketch. I like the way you can point the light pen directly on the screen - that's pretty cool and amazing for the time of course. For further technical details you might like to read the technical report submitted to Cambridge University.

Douglas T.Ross & C.A.R Hoare both sat on the Algol 68 Committee. Douglas T.Ross works on a record-like data structure (called a plex) which in turn influences C.A.R Hoare's ideas on abstract data types
Nygaard and Dahl cited C.A.R Hoare's idea on abstract data types as the origin of the class denition mechanisms in Simula [7]. Simula was the first Object-Oriented programming language, developed by the Norwegians at the Norwegian Computing Center. At a later stage Simula influenced the development of Smalltalk, a pure OOPL.

Bjarne Stroustrup influenced by Simula 67 & C to write 'C With Classes', then evolved into C++

James Gosling influenced by Modula-3, C++ and other languages develops Java

A bunch of 'dynamic' languages such as GRAILS, Ruby etc. emerge based on Java but with functional and dynamic features

The future....

2 comments:

Zhi-Ren said...

Nice little story.
I'm always wondering the future,
How people program in 20 years time?

Andrew Sealy-Bell said...

20 years ago I was wondering the same thing Ren and little has changed at all! seriously, hardly anything. Tools have improved, debuggers etc. but programmers still make the same types of errors and I think they always will. We have to hope that we can build tools to capture those errors more effectively to improve the quality of our code because, as humans, we are always prone to error and nothing will change that basic problem.

Unweaving the Rainbow, by Richard Dawkins

We are going to die, and that makes us the lucky ones. Most people are never going to die because they are never going to be born. The potential people who could have been here in my place but who will in fact never see the light of day outnumber the sand grains of Sahara. Certainly those unborn ghosts include greater poets than Keats, scientists greater than Newton. We know this because the set of possible people allowed by our DNA so massively outnumbers the set of actual people. In the teeth of these stupefying odds it is you and I, in our ordinariness, that are here.
RichardDawkins.net

Books I am reading this book at the moment:

Atheist

The Out Campaign: Scarlet Letter of Atheism