25 Orders of Magnitude of Hardware Improvement v Programming Languages

This post is for anyone interested in the history of programming languages and future trends. This is the topic covered by Robert Martin in an excellent podcast from RailsConf 2010. [Non-Rails people should not be put off, Ruby only gets a very cursory mention.] Robert makes the argument that the basic tenets of programming – assignment, conditionals and loops – have not changed for over 50 years. It is the 25-fold increase in hardware power enabled by Moore’s Law that has been driving software forward. With the Moore’s Law era now at an end it is now the turn of new programming languages for multiple processor cores on one chip to continue further progress.

Robert Martin, Twenty-Five Zeros 51 minutes

Robert mentions Algol 60 as a major influence in the design of many more modern programming languages. I cut my programmer’s teeth on Algol 60 as a summer intern at Lucas Industries (at that time a major car parts manufacturer, mainly lights) in 1965. Every morning I ran the tests from 5-track paper tape on an Elliott 803 for about 30 minutes before handing it over to other programmers of the Mathematics Group. I even wrote some machine language punched (sometimes with a hand punch) on to paper tape.

Back at my first alma mater, the University of Birmingham, I jumped at the chance to take the very first programming course offered there in 1966 based on FORTRAN IV. We ran using punched cards on a KDF9 machine which had line printer output. I remember the long hours waiting in the queue for the IBM card punch machines which meant we were lucky if managed more than one compile/execute/test run per day.

I arrived at Oxford in 1967 as part of the first postgraduate cohort in the Programming Research Group under Christopher Strachey. There we developed algorithms using CPL (Combined Programming Language). Sadly these were paper exercises as the CPL compiler was continually under development and never quite finished. CPL rivalled Algol 68 in its complexity and was never a practical programming language. However CPL did lead to the much simpler systems level BCPL, the language that gave us curly brackets (‘{‘ and ‘}’), then B from Bell Labs, then in 1970 to the much more famous C language still in use today.

Memories of the many programming languages I have used in the past always brings on nostalgia but with lots of happy thoughts to sustain into the future. I am quite happy continuing to use my favourite language of the last 10 years, JavaScript, which as a major component of AJAX has fuelled the Web 2.0 revolution. JavaScript is an under-appreciated language and few programmers admit to using it. Nevertheless the browser developers are in an intense competition to achieve high JavaScript interpretation speeds even to the extent of using just-in-time compilation. The next rounds of major web developments based around the semantic web, HTML5 and the Internet of Things will all revolve around JavaScript and programming expertise in this language will become a highly valued commodity.


About Michael Rees
Academic in IT interested in Web 2.0 and social media

Comments are closed.

%d bloggers like this: