[As ever, this is available on the BBC News website]
On Monday 31st March I was at Queens’ College, Cambridge, for the dinner to celebrate the 70th anniversary of the formation of the Mathematical Laboratory, which later became the Computer Laboratory. Maurice Wilkes, who build the EDSAC in 1949, was there, and gave a speech. And the conversation on my table was largely about the problems of finding good programmers and of persuading young people that Computer Science is a good degree to do. This article was the result.
Sixty years ago, on June 21 1948, the Small-Scale Experimental Machine, or ‘Baby’, ran its first program and the age of the stored program digital computer properly began.
Built by a team led by Tom Kilburn and Freddie Williams at Manchester University, Baby showed that storing the instructions for a computer in the same memory as the data it was working on was both feasible and effective.
Baby was too small to do any useful work, but its success prompted the development of the Manchester Mark I, which in turn inspired the Ferranti Mark I, the first general purpose commercial computer.
At the same time as Kilburn and Williams were working on Baby and the Mark I a team at the Mathematical Laboratory in Cambridge led by Maurice Wilkes was building EDSAC, the Electronic Delay Storage Automatic Calculator.
EDSAC went into operation in May 1949 and marked the point when electronic computers began to shape the world because although it was not the first stored-program computer, since Baby had all the features which we would recognise in a modern computer, it was the first system designed to be used by people who had not been involved in its creation.
In that respect it marked a transformation in our relationship with computing machinery, one whose impact has been immeasurable.
Right from the start EDSAC provided a service to mathematicians, engineers and, most notably, chemists. In the mid 1950’s John Kendrew used it in his work to describe the structure of the blood protein myoglobin, for which he won the 1962 Nobel Prize.
The line from EDSAC and the Mark I, through the first commercial computers built by Ferranti and Lyons, and on to IBM and the age of the mainframe, is quite clear.
But there is another history that leads to personal computers like the IBM PC, games systems like the Spectrum and of course to the BBC Microcomputer, and that line is characterised by programmability, by the ability of users to write their own code.
Just like EDSAC the BBC Micro was open to developers to work on, coming with the BASIC programming language and even a schematic showing the circuitry inside for those more interested in hardware than software.
Along with the Spectrum and even the ZX81 it was a computer that encouraged those using it to learn to program for themselves. The BBC offered support with television programs, magazines with long BASIC programs to be typed in and improved upon were published, and there was a sense that understanding computers meant being able to do more than just run applications.
Today, with over two billion PCs, three billion mobile phones and well over a billion internet users the ways in which information and communications technologies shape the modern world are obvious. The revolution succeeded, and we now live in the wired world of digital data, fast networks and computerised systems.
Sometimes those systems do not work as expected, as we’ve seen in Heathrow Terminal 5 over the last week, and sometimes we have to assert our rights to limit their capabilities, as the debates over electronic voting, the expansion of the DNA database and the national identity database show, but the questions are now asked within the context of computer systems.
We may live in this world, but by and large we are merely users of the systems provided, pressing buttons and keys in response to prompts, using ‘creativity’ tools that constrain our invention, and putting up with failures, disappointments and crashes.
This may be an unanticipated consequence of the increased complexity of modern computer systems, but the lack of programming tools or any encouragement even to engage with writing code is regrettable.
Partly this is because it makes it hard to have a serious debate about the core technical issues that affect the development and deployment of IT systems in our lives.
We don’t need people like the Cambridge Computer Lab’s Matthew Parkinson to come on to the Today show to talk about the complexities of working with multicore processors, although he did so very well at in a talk I attended recently, but perhaps we do need to be told more than that ‘the logins didn’t work’ when discussing the baggage systems at T5.
However there is another, more pressing, reason to encourage users to become programmers, because we need good programmers for the UK’s software industry and at the moment we do not have enough of them.
Universities have seen applications for computer science degrees fall off, schools do not encourage students to do computing at GCSE and A Level and primary school children are trained as users not as programmers.
The attention given to the creative industries by the government over the years is impressive, and the importance of artistic and cultural activity to the UK’s economy is constantly impressed on us. Art earns money, and brings tourism, and supports local communities.
But if we look closer then we see that much of the artistic and cultural production relies on computers, whether directly for video artists using Final Cut Pro or Photoshop to make their work or indirectly because they promote themselves online.
The tools they use, the services they rely on and the benefit they bring to the economy – if we want to put it in terms that even this government will understand – are built by programmers, and there are fewer and fewer of them in the UK working for UK-owned companies and making their own contribution to the UK economy.
This isn’t about protectionism or about putting up barriers to software developed outside the UK. It is about ensuring that children in schools today realise that programming is a useful skill, one that can provide a good career for those with an aptitude in the hope that they will get trained, get jobs and sustain an important part of the UK’s industrial base.
If more children learned to code, and if suitable languages and tools for programming were provided for school and home systems, then at least those with an aptitude for coding would have a chance of discovering it.
The Department for Children Schools and Families has a useful program in place to provide home computers for disadvantaged families with school-age children. Is it too much to ask that the PCs they send out have some programming tools installed?