Nearly all of the fuss about the low-cost Raspberry Pi computer's hardware has died down and we finally have some details of its software that is easy enough for the rest of us to follow. So what can you do with it out of the box?
Dr Eben Upton, founder of the Raspberry Pi Foundation, has just posted some easy-to-follow details of how to get started programming the Raspberry Pi. It was initially a webinar but if you missed it then you can download the information as a PDF - but be warned there is some strange formatting and repetitions due to the change in presentation format.
The first half or so of the presentation is about unboxing and getting started, so the emphasis on hardware hasn't entirely evaporated.
Once we do get to the software details then things are much more interesting. It explains how to create a boot SD card for the system. Once you have booted you are in a Debian Linux environment, which is fine if you are an experienced Linux user but not so good if you are a Windows programmer with no idea what to do next. The same argument applies to any complete beginners wanting to learn to program - and remember the Raspberry Pi is being promoted as a way to get kids back into programming.
The good news is that the boot image contains a program editor, JOE, which features syntax highlighting for Python and C. In case you haven't encountered JOE before, it is described as a blending of WordStar with EMACS which is probably enough to say.
You can use JOE to create a "hello world" Python program in a few minutes, but don't expect an IDE - you save the file and run it from the command line. This is perfectly workable if you are already a programmer, but it makes things harder than it needs to be for the beginner. You can of course use Python in interactive mode.
A sample Snake program shows how to create text based graphics, but to get to grips with real graphics you have to move to C and OpenGL ES. A demo program is included and details of how to compile and run it are not difficult. If you want to modify it then it's back to JOE.
This is all a little depressing if you are trying to believe the idea that Raspberry Pi is the solution to getting kids to program. This is not a system that is a self-starter, unless the student in question is a genius at programming. It also isn't what today's kids are expecting out of a programming experience. The days of the command line as an introduction to programming are long gone, and if you learned to program in this way they you are either talented or you had a great teacher to make it all seem reasonable.
Notice that this criticism by no means implies that the Raspberry Pi is a failure. As a low-cost programmable system for use by people who know how to program, it is great. It helps if you know your command line Linux and it helps if you know C or Python, but if you program in any language you should be able to create something quickly.
The are lots and lots of projects and applications that the Raspberry Pi is ideal for, but education isn't one of them - unless you want to go back 30 years or more.
It might sound overly dramatic, and when you discover what it is you might want to use the term "esoteric", but the discovery of a quasipolynomial time algorithm for the graph isomorphism problem is i [ ... ]