The latest news is that the Raspberry Pi low-cost computer has gone into production. This is cause for celebration, yes, but it is also the point, well perhaps it is beyond the point, to ask the question, why?
First the facts:
Raspberry Pi will cost $25 and it will offer a 700Mhz ARM processor with 128MB of RAM. It will be able to use an SD card for storage and you connect a keyboard/mouse and other devices via a USB connector. You also need to add a monitor, which is powered via an RCA or HDMI port. For an extra $10 you can have the B version which has 256MB and a LAN port.
A batch of 10,000 is being manufactured in Taiwan and China and when the first devices will be available for sale depends on whether or not part deliveries are made or the whole lot will be delivered at the end of the production run. They could be available at the end of this month at the earliest.
In short, the hardware is only remarkable in being cheap and it isn't as cheap as it sounds as you still need a keyboard, mouse and monitor to complete the setup, not to mention and SD card for storage.
The idea is that this is going to take us back to the days when every home had a micro computer and children were keen to learn to program. It is a return to old fashioned values and coding.
But wait a moment, almost every home has more than one computer these days and most of us walk about with one in our pockets.
The point is there is no shortage of hardware, just a failure to communicate the power and pleasure of programming. Don't just use the computer take control of it an make it do what you want?
If we are short of anything it is software - and what does the Raspberry Pi come with?
Well, it runs one of a number of Linux systems but not Ubuntu, Android or Windows8. It is promised that you will be able to buy the OS on an SD card ready to run.
What applications or languages you use with it are up to you to work out. So really you have some hardware and an operating system and then you are on your own. This isn't even as far advanced as say having an Android machine, Windows or iOS.
As far as learning to program or education goes, the Raspberry Pi is a complete red herring and yet all sorts of high profile people, who we probably can't expect to know any better, are praising the whole idea and suggesting that it is indeed the saviour of the none-techie children that we seem capable of producing in quantity.
To make the Raspberry Pi even slightly interesting you need an expansion board, which is being designed, so that it can be used to control external devices. But if this is the route you want to go down, why not just use an Arduino - which is open source and cheaper when you take the expansion board into account? You can argue that you need a PC or a Mac to program an Arduino whereas the Raspberry Pi can host the development tools on its own. Well it can, but until it has a child-friendly development system installed and running on it, this is just theory.
Until you can actually sit down to a monitor, keyboard and mouse and develop some code on a Raspberry Pi without having to be an expert in Linux command line then it all has to be regarded as a doubtful proposition.
All that is promised is that there will be an app store of some sort. Now just a minute, I thought we were trying to get away from prepackaged software and go back to making your own? An app store is a logical step, but the software to create the apps is a necessary first step.
As always in computing, the hardware is the easy part; it is the software that makes or breaks the system.
There are applications for the Raspberry Pi simply because it is a very low cost system that could be made to do many dedicated tasks - I've got a small list of ideas including a big realtime display of traffic on the I Programmer site.
Raspberry Pi isn't a terrible mistake, but it isn't the solution to our current need to teach programming.
Since it split away from the WebKit render engine to create Blink, Google has been free to pick and choose what gets implemented. Now we have the news that it has decided to ignore the W3C spec for to [ ... ]