Who Will Write Tomorrow’s Code?

[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 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?

Bill’s Links
Warning of crisis from 2006:
BBC Micro remembered:

7 Replies to “Who Will Write Tomorrow’s Code?”

  1. I really dont know how we can teach users of system to think like they are programmers but one good news at least that since UK need more programmers and my HSMP application will be accepted because i am programmer yapi 🙂

  2. When I was in middle school (about 10 years ago) we were taught to use a program called Logo. Ostensibly a maths program, it actually taught the basic principles behind programming – mainly logic. More programs like this, that at the very least introduce kids to the skills they need to program, would certainly help.

    And indeed, they are being produced: take a look at this Ars Technica article on Scratch.

  3. I tried in vain to find a ‘programming for kids’ book for my maths friendly son. Any suggestions?

    Another great article, many thanks Bill.

  4. Even if the code you are going to teach a kid in his elementary years be like a simple math program, do you think he is ready to conceptualize the whole proces and steps needed to create, troubleshoot and evaluate a simple program?
    You may be succesful in making one replicate a given program but to have him achieve programmer skills will take years!!!


  5. Great article. In answer to your question – I will be writing tomorrows code & my son is interested too, but we’ll see!

    I cut my programming teeth on ZX81, Spectrum and the BBC Micro but it’s such an incredibly different technology world now. That’s where I started; todays young programmers start at a much higher level. They can achieve things in a few clicks that I only dreamed of with my 8 bits..

    Today very few people understand (or are even interested in) how all the layers of IJW (‘It Just Works’) technology actually work. Indeed we can’t easily get access to it anyway – the inner workings of today’s systems are rightly hidden from our eyes. That’s the way it will stay. Programmers from my generation, bridging the gap as it were from ‘micro’ to ‘server farms’, should be active in helping younger programmers understand where it all came from.

    One thing I’m finding though: it’s harder and harder to keep ‘programming’ as a day Job.. The more ‘plug and play’ it gets, the less challenging & creative [fun!], the less I want to do it. There are fewer and fewer active-day-job programmers out there in the UK who can remember a pre-internet age. Most of them have got sucked into middle management and spend their days in meetings. Most of the programmers I work with are younger than me & I’m only mid thirties. I think I’ll go fire up my Spectrum emulator now!

  6. Trying to send mail to you from but the connection is refused.

    Any idea why?

    PS: If you want programming tools, get Linux. It comes with all of them. I mean _all_ of them.

  7. Very interesting article. It resonates with me as a middle-aged (ex) programmer who is still happy to engage in a discussion about how the electrons transit the PN junction of a transistor on the substrate of a multi-core micro-Processor.
    Unfortunately, current thinking is that IT (including programming) has become a commodity and therefore no longer offers any competitive advantage. The only real need is to manage the cost down. (See the HPR article IT Doesn’t Matter). I would argue the point but that’s for a different forum…
    Large contracts go to the vendor with the lowest price, and probably a vast team of uninspired developers, who crank out inelegant code that ‘meets the requirement’. It is probably on-time and on budget but it also surely does not deliver the impact it could have.
    Unless and until the current climate changes, there is very little reason to become a programmer. I, in fact, have discouraged my children from coming anywhere near IT or programming. While it is very enjoyable from a creative perspective, it is not a viable career any longer except for those select few who happen to be in a company that still has the vision to see competitive advantage in IT.

Comments are closed.