Sunday, 22 July 2012

The Law of Unintended Consequences

There's no doubt that the Raspberry Pi Foundation have done great things in bringing the diminutive Pi finally to market. Mine finally arrived this week and it is amazing to see how much hi-tech componentry is crammed onto a tiny board for a risible sum of money.

But the Foundation's aim - to introduce a new generation to computer programming - seems oddly off-target. Sure, they're selling bushels of these things. But apart from some canny school procurements  - motivated mainly, I suspect, by opportunism - you can loosen the purse-strings of wealthy IT-literate sponsors by appealing to their early days spent tinkering with technology - most sales, I think, are to people who have a great idea which needs a low-cost embedded controller to make it happen. And make no mistake, the Pi is an amazing bargain compared to just about any other solution on the market. You'd be very lucky to find anything at five times the cost with comparable power and connectivity.

But let's come back to that grand plan to engage the youth of today with the joys of programming, tinkering directly with the hardware. To make that happen you need not just a Pi, but an SD card, a power supply, a keyboard and mouse, a monitor and - due to the odd decision to go with HDMI out rather than VGA - most probably an HDMI to VGA active convertor as well.

By the time you've gotten this together the costs are likely to be comparable if not higher than those incurred just going down to the local charity shop/pawn shop etc and picking up a perfectly serviceable laptop or desktop that is several years old but still perfectly capable - a Pentium M-powered laptop, say, or an Athlon-powered desktop, complete with hard drive, keyboard, mouse and monitor. From which you could learn programming perfectly well.

But this would hardly be an objection if the Pi - as its creators imagine - is really an homage to the BBC Micro. Such a machine would be intimately 'knowable', down to the merest register and I/O pin. Certainly the early tinkerers knew their machines completely. The achievement of such mastery is what led so many people into a lifetime working in IT.

Sadly, a Faustian bargain was made in bringing the Pi to market. The creators wanted something powerful enough to handle real-time video, and so they opted for a Broadcom SOC which included a GPU. In so doing they accepted that Broadcom would not release any technical data on the GPU and that all communication with it would be by means of a binary 'blob' of code.

So let's think for a minute about what lessons a young would-be programmer might learn from the Raspberry Pi. Firstly, they'll learn that curiosity has limits. Portions of this device are firmly 'off-limits' to the enquiring mind. Should you be curious about how the GPU might be used for massively parallel programming, or wish to experiment with video capture (perhaps image recognition) and processing, well, you can forget about that. The information on how to do this is only available to a privileged few.  Want to connect a camera?. They're working on an 'official' one - but will you be allowed to see all the source code for it?.

And let's suppose for a moment that an enterprising young genius - another George Hotz, shall we say - decides to try reverse-engineering that binary blob and publishing details of its inner workings. It's not hard to imagine Broadcom coming down on them like a ton of bricks. This isn't going to be good publicity either for the Foundation or Broadcom.

Now, these issues have been raised on the Raspberry Pi forums. And the foundation staff get quite defensive about this. It's understandable that they felt this was a reasonable compromise, given their misguided idea of what might attract a fresh generation of programmers. But giving them a wonderful machine with a locked room and a big 'keep out' sign is not a great idea at all. Instead, it teaches those young minds that information isn't freely available to all, and that they can just, like Dickensian children, stand at the window and flatten their noses against the glass and stare at the unobtainable things on the other side.

And another thing they'll learn from the Pi is that, thanks to the wonder of software patents, their great ideas might not belong to them. No, they could write a marvellous piece of code and then find that they have to pay someone else a fee for the privilege of doing so. (that's why the Pi has no software for video capture, for instance. They have to pay licensing fees for it, unless they use the royalty-free OGG format).

Another lesson they'll learn is that under every bridge lurks a bottom-feeding patent troll. Who'll claim that their patent on 'clicking a mouse to display information on a video display device' covers that cool new piece of software our youngster just wrote and sues them for ten million bucks, forcing their parents to sell their house just to cover the legal fees.

And that's a shame. Because among those great young minds are tomorrow's geniuses. Who will turn their talents to other fields - physics, mathematics, chemistry, and so on, where knowledge is not locked up in secret vaults but made available to all, for the common good.

I can only hope that at some point Broadcom might see the logic of opening up the inner workings of their GPU. Imagine the amazing things that might be developed, if only we - and our children - could be given the key to the knowledge locked away for corporate gain. Meanwhile the Pi remains a flawed gift. A great gift - and we should be very grateful for the Foundation's hard work - but, regrettably, not the gift that keeps on giving.

No comments:

Post a Comment