Raspberry Pi’s most important achievement so far is in generating considerable publicity. The genius of its marketing is that it appeals to the current generation of tech journalists, who were raised on the 1980s home computers whose spirit it invokes. Whether it will appeal today’s children however is less obvious, and arguably more important. Having the inner working exposed (unlike home computers) should help, though it also exposes a serious failing (more on that later).
What measure of success?
How successful it is likely to be depends largely on what you think the problem is.
Reproducing the past
Raspberry Pi’s founder, Eben Upton, defines the challenge as getting a pocket-money-priced computer suitable for teaching children to program mass-produced. The R-Pi meets that definition for the sort of middle-class household that boasts a spare HDMI-compatible monitor plus an old mouse and keyboard and offers generous pocket-money, but elsewhere failing to count input devices and a display in the cost seems disingenuous, and an all-software solution that ran on just about anything, including phones and old PCs, and could be freely downloaded, would seem nearer the mark.
Upton would reply that merely adding “an app for that” doesn’t invite the child to program as the old home computers did (when you switched them on you were immediately presented with a programming environment). Compare this with games consoles and PCs: you can program them, but by default they offer games or an office desktop respectively.
More seriously, many parents quite rightly lock down the computers their children use to prevent their visiting undesirable web sites or installing new software, or even insist on their being supervised: forbidding conditions under which to nurture the sort of exploratory play by which we all learn to love programming. A separate device which belongs to the child, contains no sensitive parental data, and can’t go online addresses all these problems, and the child can be left alone with it as safely as with a book.
Rebuilding the workforce
So far, so good: we’ve recreated a small corner of the 1980s, and a small self-selecting segment of relatively privileged children will have a chance to become programmers. But we already need far more programmers today than when the children of the 1980s entered work, and we’ll need even more when today’s children grow up. To make up the shortfall, programming needs to go mainstream.
This is a challenge that’s already being met locally in many areas; Upton’s approach is to reach out to children directly via programming competitions (or “bribery” as he calls it); although this approach might work without substantial involvement by schools, it seems unwise not to make a serious push for inclusion in the school curriculum.
I believe, however, that programming is far more important and central a skill for the modern world than even its most ardent industrial cheerleaders suggest. Being a non-programmer today is like being illiterate two hundred years ago: it’s possible to get by without understanding anything about programming, but you end up relying heavily on others.
It’s a subtle point, because it’s rare that one needs to actually read or write code; rather, one needs to understand how computers work because increasingly they are embedded in, and hence govern, the systems we use to organise our lives.
Many competent and confident users of computers are reduced to impotent gibbering by machine malfunction, because learning how to operate a computer gives one very little insight into how they fail, whereas understanding bugs and other failures is central to learning how to program. It’s as if the person who could help you repair your blender is the one you’d ask how to cook a soufflé, or as if the person best able to navigate a car was a mechanic.
(Why computer systems are like this is a fascinating question whose answer involves the immaturity of the technology, its complexity, and the degree to which interface and systems design is still driven by technical rather than human considerations, but one I can’t elaborate on further here.)
Even more important is the mindset underlying programming: programmers, like scientists, believe that systems have rules which, if they can’t be looked up (“reading the source code”) can be discovered and codified (“reverse engineering”). But programming has an additional, empowering belief: that rules can be changed or replaced. In a society that is increasingly rule-bound and run by machines, a programmer’s mindset offers both the belief that things can be improved, and the tools to change them. That is why it’s essential that every child should understand at least the principles of programming, even if they never read or write a line of code as an adult.
Hence, it is necessary that programming become part of the core school curriculum, and it will be a good sign that it is embedding itself in our culture when it becomes so. Raspberry Pi has three major problems here: the hardware, the software, and connectivity.
Seeing to the bottom
The problem with the hardware is optically obvious, because of R-Pi’s lack of external casing: it’s entirely closed. You can see the components, but you can’t take it apart to see how it works, or modify it in any way. This is partly a result of the nanometre scale on which modern electronics is built, but it’s also caused by the increasingly draconian intellectual property régime under which we suffer. Unfortunately, the beating heart of the R-Pi, a Broadcom SoC (“System on a Chip”), is a prime example of this.
Even more unfortunately, it’s hard to see how anything like the R-Pi could be built without such regressive technology (in this case, via a special help from Broadcom that Upton, as an employee, managed to secure). All this means that the R-Pi is not only little use in firing the imagination of the next generation of hardware engineers (just as sorely needed, if not as numerously, as the software kind), but its hardware reinforces the “black-box, do not touch” mentality that its software is trying to break down.
Programming for all
Unfortunately, the programming environments provided, although open, are the standard machine-first arcane languages and tools that adults struggle with. Why not use something like Squeak Etoys, which is based on decades of research in both programming and teaching programming? (The plurality is part of the problem too: the R-Pi offers distracting choice, unlike old home computers which simply dumped you into their one built-in programming environment.) Fortunately, this is easy to fix: just update the software shipped with R-Pi.
Changing the world, Learning together
The final problem, connectivity, is a subtler one. Above, I mentioned that an advantage of giving a child their own device is that it need not be connected to the internet, and hence can be safe for them to play with unsupervised. But the R-Pi lacks other sorts of connection that are important. First, it can’t affect the world physically (though peripherals attached to it could). While the privacy and absolute power one enjoys in the virtual world inside the computer is exhilarating and empowering, children also love toys that have real world effects, and it’s an important aid to the imagination to see that one’s electronic creations can have direct physical outcomes.
The Logo systems of the ’70s and ’80s had a natural real-world extension in the form of drawing “turtles”; today we have Lego Mindstorms, but they’re expensive, and only partly open. What we need is a RepRap for children. Secondly, children want to play with each other; their computers should be able to network too. The One Laptop Per Child machines do this; R-Pis should be able to too (and again, fortunately, it’s mainly a matter of software).
Feeding the five million
In summary, Raspberry Pi is, closed hardware aside, a great platform that could help catalyse a much-needed revolution in the perception of programming. The good news is that the remaining technical steps are in software, and can be taken without the heroic step of re-mortgaging one’s house, as Upton did to fund R-Pi. The bad news is that the rest of the job is social, and hence much trickier to achieve than a bank loan.