The Raspberry Pi: Is it REALLY the saviour of British computing?

Opinion It is fair to say that the Raspberry Pi is a success. I love them, you love them, the whole world loves them. It has reminded the rest of the computing world that the UK - and Cambridge especially - has a proud computing heritage.

It’s hard to miss mentions of the Pi in the technology press each day. It is spoken of in hushed tones, revered as being something we British can be proud of – like Winston Churchill, or our innate suspicion of foreigners.

But I don’t think it will be The True Saviour of British Computing™, all on its own. Let me explain.

It’s this sentiment that bothers me: “The Pi will get kids programming again! It will unlock a new generation of young programmers! Bedroom-programming will be reborn! The UK will provide the world with the next Tim Berners-Lee,” and other such hyperbole. This all appears to come from technology journalism, rather than the Raspberry Pi Foundation itself.

The train of thought goes something like this:

Computers are expensive, so not every family has one

Everyone can afford a Pi

The Pi is easy to tinker with

It runs Linux - that’s programmable, isn’t it? Everyone knows that!

Suddenly, lots more bedroom-programmers

Let’s discuss these points in turn.

“Computers are expensive, so not everyone has one”

I'd argue that computers are not expensive – and, actually, most families do have one. You can buy a brand new netbook from your High Street supermarket for only a couple of hundred quid. Secondhand computers have negligible value and can be bought for pocket change from secondhand shops. And even poor families tend to know at least one gamer with too much disposable income who can provide a hand-me-down.

Broadband is considered an essential service these days, and even poor families have it. So it seems fair to suggest that most households have a computer, even if it’s just for Facebook.

If there’s a lack of budding programmers in this country, it isn’t because they don’t have access to a computer.

“Everyone can afford a Pi”

Yep, I totally agree with that. Thirty quid for a computer this good? Bargain!

But that’s not the only cost, is it? You also need a case, a decent display with HDMI input, a power supply, some SD cards, a USB hub, a keyboard, a mouse, a network cable long enough to get to the ADSL modem, and a fair amount of desk space. All that added together is not far short of the cost of a supermarket netbook... and it's far messier, too. You also need access to another computer with an SD card reader in order to download Pi operating systems and copy them to a card - which brings us back to my earlier point.

Now, you, the adult geek, probably have most of those extras rattling around in a drawer in your Man Cave. But the Tim Berners-Lee of Tomorrow - who, at this moment, is reading comics and watching Almost Naked Animals - does not. Neither does the overworked IT department of your local school. They can’t just buy a lorry-load of Pis and hand them out - they’d have to find all the other bits too. After that, there’s a whole world of connectivity and support pain.

“The Pi is easy to tinker with”

Yes... and no. It is certainly easier to poke things into than a standard home computer, but I would argue that the Pi isn’t particularly forgiving for the young engineer just working out which end of a soldering iron is hot.

The power connector is a micro USB connector - they’re quite fragile. There’s no reset button on a Pi, so if you need to reset it then you’ll be abusing that connector quite a lot. There are some general-purpose connections for wiring electronic projects to the Pi, but they’re 3.3V rather than 5V, which is more common for anyone doing GCSE electronics. And there's very little circuitry to protect it from accidental short circuits. The Pi was built to a tight budget, and such protection was left out as collateral.

The best I can really say is that using an Pi in your electronics projects is probably easier than using a standard Windows PC, but that’s not saying much. If you want to teach kids to do electronics projects with a small computer then I’m not sure the Pi would be my first choice anyway. The Arduino is more sturdy, simpler, cheaper, easier to use and more resilient.

“It runs Linux - that’s programmable, isn't it? Everyone knows that!”

Yes, it can run Linux. But then, so can a home computer, and they've been able to do that for decades. If it was just down to Linux availability, we’d be overrun with budding programmers.

I am a computer programmer by profession – I never say “professional computer programmer” because it makes me snigger. I haven’t been out of work a single day since I left university in 1999. For most of that time I've worked in the computer games industry. That involves an awful lot of mathematics, advanced programming techniques, and writing solid and low-memory-footprint code for an industry that isn’t particularly tolerant of failure.

My responsibilities during three of those years included full-time administration of a rack of 40 Linux servers. This included build, installation, backups, maintenance, security, and so on.

I only tell you this so you appreciate where I'm coming from when I say that I don't consider Linux to be a friendly operating system for the casual user. It still perplexes me after all these years! Yes, it's very powerful and flexible, and I run many computers at home with it, but the cost of such flexibility is that configuration can be a nightmare.

And although Linux is considerably friendlier than it used to be (anyone remember the early days of Slackware?) I really wouldn’t like to think what sort of impression it would make to a young teenager who might just be taking his first geeky steps. Unix file permissions, package management, and root access are all very important, but I would suggest they are all hindrances to the budding young hobbyist. The OS could put him off before he even sees “Hello World”.

This isn’t the fault of Linux - it is what it is. It was made by the technically-savvy, for the technically-savvy. Nor is it the fault of the Raspberry Pi Foundation - it’s a sensible choice for the hardware and cost. But it is not the ideal choice for the adolescent hobbyist!

“Suddenly lots more bedroom programmers!”

I’m not holding my breath.

The concern that the UK needs to produce more programmers is a very real one. Recruiters contact me every week: “Just thought I’d e-mail you to see how you were and oh, by the way, how would you like to earn 100K a year in London? Or Canada?” It gives me a nice, smug feeling: no matter what dreadful code I produce people will still pay me for it.

So although I can be pretty assured of employment for the next 30 years, long-term prospects for the UK programming industry don’t look quite so hot.

People often suggest that the point bedroom-based programming died out was around the transition to 32-bit computing. Not because computers became super complicated, but because this was also the point where computers stopped being about enthusiasts, and started being about office workers and consumers. You know, when computer science teachers were told to throw out their easy-to-program Acorn computers and replace them with Windows 95 boxes because “that’s what kids will be using when they get a job”.

At that moment, computer programming lessons were killed off in favour of Microsoft Office tutorials. We created a generation of office workers - yay for us.

Computer programming became really difficult - at least, for someone casually trying it out. Compilers became expensive, reserved for the engineer. Kids were no longer welcome.

Light in the darkness for British programming?

Many pundits have called the Pi the “new BBC Micro” - comparing the success of Acorn’s iconic 8-bit machine to what they hope for the Pi. And many wax lyrical about it being powered by ARM, coming from Cambridge, and so on. The Model B is what taught me - like thousands of others - to program; we all hope that history repeats itself there.

But the BBC B didn’t teach me to program on its own. It was the tool that taught me to program, but as directed by Making the Most of the Micro on telly, plus subscriptions to at least two different computing magazines, numerous books, support from my parents, and so on. It was a combined effort.

These days, the problem seems to be that there’s too much choice. It’s programming anarchy out there! There are dozens of programming languages to choose from! How is a learner programmer supposed to choose the right language for them? And assuming they pick a sensible language, how do they separate the good online tutorials and blogs from all those that are poorly written, lazy or just plain wrong? Which books do they buy? And which magazines will provide any useful information, or project ideas?

So what do you suggest, Mr Clever Clogs?

To get kids programming again requires a concerted effort. It requires consistent, good quality teaching materials with measurable goals, and options for further projects every step of the way. It needs to leave enough options open that a student can tinker and learn. And it needs to be taught by people who know how to teach.

In fact - and my idea may shock you, so keep those bowels under control – computer programming should be taught in schools!

It will require a choice of language that is appropriate to the age group. It will require software that runs on Windows and Mac computers - because they’re more likely to have one of those at home than an Pi. It will require projects and tutorials that keep kids interested in computing - it’s all about the hearts and minds!

Students need to see their first programs ‘acted out’ for them, to give them instant feedback about what their program did. My first lessons in giving logical instructions were in primary school, using Big Trak and then the Logo Turtle. “FORWARD 4, RIGHT 90, FORWARD 4... what do you think this will do? Run it. Did it do what you expected?”

When a child is equipped with the basics and taught in a familiar setting, then they are - at least partially - prepared for tinkering at home. And when a child is stuck they can ask their teacher about them, and the teacher might have an outside chance of answering, because everyone will be using the same language.

As they move to secondary school, give them a language which lets them make a game. Typical game development requires logical thought, understanding of algorithms and a degree of creativity. And it will keep the students interested. By the time they need to make choices about further education they’ll be well-prepared to tackle C++, and they’ll be equipped with the confidence to study it. And for those students who decide that programming is not for them: they have still learnt some logical thinking, problem solving, and patience.

Show a child how rewarding programming can be, and you’ll have a student who is focused, driven, and with half a clue about what to do for a career. That’s what happened to me. That is how we create a new generation of programmers.

The Pi may be a vital part of this future, or it may not. But we can’t sit around and wait for it to magically create new programmers - because it won’t do it by itself. ®

Kris Adcock is a thirty-something Midlands-based programmer with more than a decade’s experience working in the games industry. He blogs at The Further Adventures of Oddbloke.