Playing with the Raspberry Pi has me thinking about it’s touted promise as an Educational Computer, one of its stated design goals. I actually think about what a good computer for learning about computers should be quite a bit, out of both personal and professional interest, and have been building a list. I hear an older generation talk about their Apple IIs and ZX Spectrums (and occasionally even access to mainframes through parents) as formative experiences, and I’ve come to appreciate that the stream of interesting old computers my parents kept me supplied with as a child were an amazingly formative experience, and one I can never thank them enough for, so it is interesting to think about what will fill this niche for children growing up now.
For the sake of brevity, we’re going to call this kind of computer a “Learning Computer.” My idea of a good learning computer is:
A Real Computer
A good learning computer has to be usable for the same kinds of tasks as contemporary computers, in the same general manner. It can be limited and inferior, but it has to be basically analogous. Little development boards and Microcontrollers and the like usually don’t make it on this point.
Not “The” Computer
A good learning computer will always be a second (or n-th) machine. No one wants to break the computer they use day-to-day, and learning on a machine people depend on restricts one’s ability to really tinker with it. It is especially important to have another machine with which to get help when things go wrong with the one you are tinkering with.
A good learning computer will be both cheap enough to be given to or purchased by anyone curious, and cheap enough that the owner isn’t overly afraid of destroying it. This is fundamentally the same issue as the previous point.
Common, but not Ubiquitous
Truly obscure machines will lack documentation or community, so they will be hard to learn with. A good learning computer will be sufficiently widely distributed that there will be resources and a community available for it. Conversely, for truly ubiquitous computers there will be a canned solution for any problem, so one has to go out of your way to learn anything from it. There is even some value in it being a little bit weird, so that the owner can appreciate design distinctions.
You need to be able to reach in and poke around at the software and hardware. Ideally, the entire boot process will be visible, and at least one operating system the hardware will run will be capable of introspection. The level of openness required is negotiable, but an iOS gadget isn’t going to do it.
A good learning computer should be able to boot multiple environments, so that the owner can experience a variety of systems, and appreciate what is dictated by the hardware and what is not. It should also have hardware subject to tampering, swapping, and replacement for the same reason. Swappable storage media is especially important on this front.
There are few things more powerful than the knowledge that one can make real things. A featureful, accessible programming environment is perhaps the safest, cheapest way of imparting that knowledge.
Just to enumerate how a Raspberry Pi stacks up –
It hosts a variety of environments that look and feel much like a full grown computer, and also is deeply similar to the baby computers / overgrown appliances that have recently become common. It costs $35, and isn’t really pitched as a primary computer. It has already sold enough units to be common, documentation is widely available, and a community has sprung up among the hackers and makers, but it isn’t oversaturated. The default software stack, with some really disheartening holes, is basically open and inspectable. It’s modular via USB and SD cards, and is as accessible as anything with BGA packed parts can be. It is programmable in almost any common language, and many environments floating around for it are tailored to that use.
For the time being it is hard to argue against an old PC, but PCs are increasingly becoming blackboxes that only speak complicated protocols, and older simpler PC hardware is quickly falling out of support even in the hobbyist OSes, which carves a clear niche for a purpose-made learning computer like the Raspberry Pi. It really is very close to the machine the upcoming generation needs as a learning computer, but it remains to be seen how well it will do at reaching the people who will be enriched by it.