Can a £15 computer solve the programming gap?
news.bbc.co.uk
news.bbc.co.uk
However, I think the statements in the video about how computers have become much more complex and that is why people aren't learning to program them at a young age is incorrect. BBC Micros and ZX Spectrums (and Commodore's and Amigas and all the rest) were, IMHO, not easier to learn with compared to todays computers. They were actually much less accessible and therefore attracted the type of people who were able to learn. Smaller audiences of more capable people (because the less capable people were never attracted to them in the first place) gives the illusion that they were simpler and easier, even when they weren't.
Todays computers are usable by just about anyone and most people are exposed to them in some way through games, social networking, websites.. whatever. The amount of people learning to program is probably a lot higher today than it ever was as the barrier to entry is so much lower (going from something as simple as Scratch, to web development with Javascript, to Ruby and Python and Processing - a lot of simple, yet powerful, tools (with instant feedback) are now available), its just that the percentage of people learning to program out of all the people using computers is now a lot lot lower.
I don't see how this device would be able to make it any easier than a full blown computer (once somebody found and installed the software for the kids) except that 1) it will have the tools preinstalled and 2) it will be inexpensive enough that each kid can be given their own one creating a sense of ownership and hopefully inspiring and encouraging them to do cool stuff with them (which in turn means they learn more).
TL;DR: This thing does have potential, but I think they (at least the people who made the video) are focusing on the wrong thing (bringing back the 80's of computers and programming because they feel it was simpler back then, while I believe it is a lot lot simpler now).
Either way, I'll ask this: Why do you think people found it easier to learn to program back then than it is now?
I think the 80's home computers were objectively much simpler than modern computers. And therefore it was easier to gain deep understanding how it worked and then how stuff can be accomplished with it. On the other hand, modern computers are almost impossible to understand at the same level, but then it is not necessary to do so. We have operating systems and compilers that take care of lots of stuff, and therefore modern computers are easier to use, and probably have gentler learning curve.
The necessity and motivation are also a important factor. If you are doing small stuff (like hello world etc) then the work feels much more compelling when it transforms a "useless piece of plastic" into a "magical box that does awesome stuff". With full featured linux distro, you already have "magical box that does awesome stuff" and your own work doesn't really add anything to it.
I mean I haven't written anything in it for 15 years but I can still remember ALL of it intimately including the memory maps of the machines.
Hibernate for example is more complicated than the operating system and programming language combined on those machines.
Why was this though? Why can't a language on a modern computer have a similar learning curve? Or even, why can't BBC BASIC be ported to a modern computer so we can have a just as productive language with a low learning curve?
Was it because the hardware and operating system were less complex? Well, the raspberry pi runs Ubuntu on an ARM processor, so its not going to help in this respect.
I suspect it seemed simpler out of necessity - if you didn't learn it, you couldn't do much with the computer, while nowadays you don't need to know how to program to get a lot of value from a computer. I've read countless stories about how kids learnt BASIC and then learned the systems assembly language because BASIC was too limited or slow. The core instruction sets of todays processors (eg x86 or ARM without extensions like FPU or SIMD instructions) aren't much more complex[1], yet nowadays you rarely hear of anyone using assembly, let alone kids. Its not that learning assembly is harder now than it was, because its not harder (if you ignore the advanced instructions - which you wouldn't learn till later anyway) because the core instruction sets are still very similar, there are better tools and editors available now, there are emulators and simulators and there is a whole internet of tutorials and articles, while back then you probably only had a single manual. The difference is that today you do not need to learn assembly to do cool things, while back then you were pretty much forced to once you outgrew what the BASIC system could offer.
So I'll ask again - what is it about the programming systems available at the time that makes them easier to learn than those today? Besides the fact that learning was a necessity (and one which the Raspberry Pi cannot realy hope to emulate, IMHO).
[1] Well, x86 is a mess of an assembly language compared to others (I've been doing a lot of PIC24H microcontroller assembly programming lately and its much nicer to work in), but its not exactly complex compared to other (including the older ones I'm comparing to above) assembly languages.
http://camltastic.blogspot.com/2008/08/just-draw-something-o...
With a new computer, like a modern automobile, you can't hope to understand how it works. With an old automobile, for example, two screwdrivers and a socket set could get you at the internals. You can't take a soldering iron to a new computer and expect to make anything useful happen.
Stuff that I'd add:
* (Ethernet) networking. Or at least some serial ports. Or some way to plug two or more of these together (something over USB maybe?)
* USB hub. First of all, using male USB connector as host port is just plain ugly. Secondly, if USB hub is a requirement to actually use the computer (as it seems to be currently), why not have it built-in?
* Analog video and sound output. Doesn't need to be HiFi, composite video and builtin DAC will be fine.
What I would change/remove:
* Ubuntu. Instead run some minimalistic system that boots directly to simple REPL, and allow more powerful programming somehow (inline ASM?).
* The SoC is huge overkill. And imho way too complex for a beginner to understand. Of course if you plan to teach just some high level language that hides all the hardware from you then it doesn't matter, but then the hardware wouldn't matter at all, and just using some off-the shelf x86-box would yield same results.
* Few GPIO pins are good. Arduino shield compatibility would be great.
tl;dr. I would make the computer more like self-hosting arduino and less like gimped generic ubuntu box.
for values of little not exceeding Braben's lifetime.
(sounds like a really promising game though) ref: http://frontier.co.uk/games/outsider/
That spark of interest comes from seeing something real (which is physical and easy to understand), and being able to control it by using code. Think arduino, not emulation.
All that said, I am a web developer, the main reason I got into it was the simplicity of technologies like HTML, PHP etc. Whereas nowadays, even web development is dominated by abstract ideas like OOP, APIs and frameworks, so it's becoming less interesting in that respect.
This is the page (its in Bulgarian, but Google translator does an excellent job):
http://translate.googleusercontent.com/translate_c?hl=bg&...
Feel free to ask away if you are interested, we have contacts on the website :-).
Back in the day (i.e. around the late 80's) we used to have PROPER computers in schools in the UK that everyone had free access to. My particular school had a large network of BBC Master[1] and Acorn Archimedes[2] machines - all proprietary platforms but OPEN with respect to documentation and doing what the hell you liked with them. In fact, Acorn, the manufacturer would tend to shove all the hardware reference and programmers guides in the box with the machines (you could not break the software on them). They ALL had BBC BASIC (very advanced variant of structured BASIC) with an inline 6502 or ARM assembler and most of the earlier machines had analogue and digital IO you could just stuff things into. They were all networked together as well and could talk to each other.
We were ACTIVELY ENCOURAGED to build stuff that plugged into these (rather than the recent policies and AUPs that students have to live with) and write software to control things and even modify the operating system at will. We built a massive transit shuttle system based on Lego, we build automated cranes, we build light sequencers, we built anything we damn wanted and were applauded for it.
Most of the software devs I know in the UK (other than the young and really old ones) tend to have cut their teeth on this kit.
Then there was the introduction of the PC which destroyed all this in favour of "security", "acceptable use policies", "black boxes", "no documentation" and "vendor lock in".
Mr Braben was a pioneer of these machines [3] [4] and is held close to the heart of many people. He wants the education sector to go back to these days (rather than the utter corruption that Research Machines, BECTA and Microsoft have destroyed everything with recently) because he truly KNOWS what is good for the industry i.e. people who know how stuff works and are free to understand.
Ironically, on a slight tangent, my children have Linux machines in their school these days rather than Windows, which is used for administrative functions only. It'll only be a few years before my eldest discovers gcc.
[1] http://en.wikipedia.org/wiki/BBC_Master
[2] http://en.wikipedia.org/wiki/Acorn_Archimedes
The last innovation was Forth on a Chip if you ask me.
Round my way, it was Sinclair all the way, because they were cheap. The ZX81 is perhaps the archetype - they sold 1.5 million units, mainly to people who had no idea what they would do with a computer. At £69.95, it was cheap enough to be an impulse buy for most people, cheap enough that kids saved up their paper-round money.
A lot of early buyers ended up building their ZX81s from a kit (because it was £20 cheaper) and learned a lot. Even for those that bought it pre-assembled, there wasn't much to do but learn. The unexpanded ZX81 came with just 1kb of RAM and no bundled software, but it did come with a spiral-bound "Teach Yourself BASIC" book. The keyboard was covered in markings for BASIC shortcuts.
At the time, several magazines consisted of little more than printed source code, mainly for games, that you could type in yourself. These programs were invariably rubbish, but a mag was at least a quid cheaper than the cheapest of games on cassette so they sold shedloads. You'd spend an hour typing it all in and fixing all your typos, only to realise that it was a hopelessly boring game. Fiddling about with the source code was the most interesting thing to do.
The more enterprising kids realised that they could do better and earned a bit of pocket money selling programs to the magazines. The really enterprising kids knuckled down and wrote a retail-quality game, which in the mid-eighties you could do during the summer holidays. The origins of a large proportion of the British video games industry can be traced directly to a teenager, a Speccy, a blank tape and a particularly gloomy August.
Not to detract from the rest of what you say, but I think you might have a skewed idea about how much spare cash "most people" had in 1981.
Which is why we did all our playing at school on the BBC's :)
I still remember being about 11 years old entering the poke commands to makes sounds on the Vic-20 from the manual supplied. [1]
Without them, it would have been impossible to get such a good incentive to do something other than insert a game and click X to start (as such.)
[1] http://www.bombjack.org/commodore/commodore/VIC-20_Personal_...
The first generation of kids that never knew a time without Internet access, much less computer access, has recently cleared university, and they don't know programming. Thinking they'd have learned to program had they had a £15 computer (rather than the £500-£1000 one they/their family did have) doesn't seem likely.
A $15 computer is obviously not targeted at that market.