Hacker News new | past | comments | ask | show | jobs | submit login
Can a £15 computer solve the programming gap? (bbc.co.uk)
60 points by Peteris on June 5, 2011 | hide | past | favorite | 47 comments



I think its an interesting project, and if they can actually produce it as inexpensively as they hope (or even twice that - $50 is still a good price point!), I think it will be useful in schools simply because kids will be able to own one themselves, bring it home etc, which I think will inspire (at least some of) them to learn more and do more interesting things with them outside of the classroom. As somebody in another HN post about this said: "get technology into as many hands as possible" - this is certainly a great thing!

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).


Having been there and having done that and still being involved, I respectively disagree. It was simpler in virtually all respects. I watched people of all different levels of interest and education (house wives, grad students, math majors, art majors and so on [notice no comp sci---there wasn't such a program]) learn to program in a subset of IBM BAL---this before any of the various micros you mention existed. Later when such things became available I was lucky enough to watch a very much larger audience teach themselves what they needed to know in order to accomplish what they wanted to do. And all of this before the internet had escaped the clutches of DARPA. In most cases, all that was available was the machine and the documentation that came with. In sum, I know what it takes to be creative now and I know what it took then. I would suggest that at best, it might be a draw. My bias would like to say that the good old days were better, but given the richness of today's environment, in fairness I have to come down squarely in the middle.


Back in the day, writing a program that could read in and print a list of numbers from a file, sum them, and potentially even add and remove numbers from the list, was an achievement and amounted to something half-useful. Today, you can do the same thing in a couple of seconds with a spreadsheet. To do something useful with a modern machine, the program needs to be more complex. Having simple incapable machines again wouldn't be enough; they would be too frustrating to use.


As I said in my other reply[1], I suspect it seemed easier out of necessity. Today, you can turn on a computer and it can be useful and provide value without needing to learn to program or how the machine works. Back then, you more or less had to learn about the machine or about programming to really get much value from the computer. Necessity is the mother of invention. I think I was much more inventive and creative with my programming when I first started out because I didn't know what was possible, so to do the crazy advanced things I wanted to do, I was forced to be creative and try weird and wonderful things and use my computer or programs in ways they weren't really designed for. I learnt a lot because of this. Now I can just reach for an existing solution and not learn a thing, because I now know where to look or what to try. I'm not sure the raspberry pi can hope to achieve this. In fact, besides the low price point and the fact that they have solder points for general purpose I/O (which I think could be a huge selling point and benefit to learning - physically connecting things to it should help motivate and inspire kids), it is still a complex modern processor running a complex operating system (Ubuntu) and doesn't really have anything other modern computers don't have.

Either way, I'll ask this: Why do you think people found it easier to learn to program back then than it is now?

[1] http://news.ycombinator.com/item?id=2622880


I think you both raise valid points.

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.


The problem is that kids today don't think of a computer as a "magical box that does awesome stuff". Nowadays, computers are just tools. They're not special; they're everywhere, and they can be used to do boring stuff, or useful stuff, but they're definitely not regarded as "magical", any more than a car is, or a TV. This is probably a depressing thought to those of us who remember a different time, but it was inevitable.


Accessibility and complexity are two very different things which you seem to conflate. The percentage of a device which a user of any given capability can understand has undeniably dropped.

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.


Arguably (this will result in an argument - sorry), BBC BASIC on the BBC Micros is much more productive and has a lower learning curve than all the disparate technologies these days.

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.


BBC BASIC on the BBC Micros is much more productive and has a lower learning curve than all the disparate technologies these days.

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.


My 14 year old self was instantly entranced by the immediacy of being able to program the ZX81 and the BBC (or Electron). But my 14 year old descendant is entranced by the internet, the Playstation, the iPod Touch, among much else and hasn't - yet - got around to being entranced by the idea of trying to make simple things for himself. It's more about motivation.


There aren't a lot of languages today where you can "just f-ing draw something" on the screen. Instant feedback for kids. Of course there are some exceptions, but in all(?) mainstream languages, getting it to draw a shape on the screen is a mammoth task involving GUIs, menus, drawing widgets etc.

http://camltastic.blogspot.com/2008/08/just-draw-something-o...


BBC BASIC has been ported to a "modern computer" (if you'll accept a Windows PC as fitting that description): http://bb4w.com/


I think Raspberry Pi is missing the point by running "normal" Ubuntu Desktop on it, and having such limited connectivity.

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.


OK David this is cool and all, graphical Linux desktop on a USB stick, but please keep working on Elite 4 [1] , it's been a long wait so far...

[1] http://en.wikipedia.org/wiki/Elite_4


With Duke Nukem going gold, it can only be a little longer.

for values of little not exceeding Braben's lifetime.


yes, DNF going gold is definitely a good omen, apparently Frontier are committed to getting 'The Outsider' out of the door before they can focus on Elite 4 full time though. So I'm not holding my breath...

(sounds like a really promising game though) ref: http://frontier.co.uk/games/outsider/


A £15 computer sounds cool, but programming can be done in your web browser. Just write some javascript and let the whole world instantly see your creation.


That's what I don't like about modern computing, there's too many layers of middleware. With web browsers you lose the link between the software and hardware, it's too abstract and theoretical.

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.


Yeah but you only need to spend £15 on the computer to fire the web browser up on now.


The misleading thing about the '£15' Raspberry Pi is that the main peripheral I/O is via USB, so to get this device on the 'net you must factor in at least another £17 minimum for a powered USB hub and USB network adaptor - and then we have a £32 USEABLE computer. It would have cost about £2 to add an RJ45 Ethernet adaptor to the basic design so I hope this will be considered in due course (I have contacted the developers about this)


The company that employs me has a Linux-based product that allows you to connect extra monitors and keyboards to single computer and have multiple logins on the same computer. We have equipped a computer lab with this configuration and the students use it write applications with Eclipse, browse Facebook. It is not too complicated for them.

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 :-).


The official website is http://raspberrypi.org/.


Fair warning, auto-starting multimedia ad.


Where's the ad? It's the BBC website.


Users of the BBC website outside the UK get served ads.


Not if they are using Adblock Plus with Easylist.


Didn't know that. Interesting! Thanks for pointing it out.


A history lesson for those either too young to know, or not from the UK. This will explain a few gaps.

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

[3] http://en.wikipedia.org/wiki/Zarch

[4] http://en.wikipedia.org/wiki/Elite_(video_game)


The BBC micros were one side of the coin, perhaps the more respectable and middle-class side.

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.


> At £69.95, it was cheap enough to be an impulse buy for most people

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.


We could argue endlessly over that, so I won't. The point stands that relative to other micros, Sinclairs were really cheap. The BBC model B launched at £335 but was sold at £399. The 'cheap' Acorn Electron launched in 1983 at £199, by which time you could get a ZX81 for under £40 or a 16k spectrum for £99.


And they sucked.

Which is why we did all our playing at school on the BBC's :)


Oh those magazine type-in games were utter turds - many did I type in that didn't work properly (partially due to my abysmal typing accuracy at the time).


It is sad that the current status quo on software development consider vendor lookup as a good thing. For example, people feel that it is good to use only one processor architecture (x86), and even think that a corporation-sponsored virtual machine (JVM) is a "good thing". No wonder why systems research is basically dead, only trying to improve over the clumsiness of existing architectures.


Agreed entirely. It's one of the things that has been annoying me for years. The x86 ISA is an utter mess - totally non-orthogonal. Why we keep worshipping it I don't know.

The last innovation was Forth on a Chip if you ask me.


I was reading another day about the PDP 11, and it is incredible how it looked much easier to program than an x86. Maybe we should go back in time and try to learn some of the forgotten tricks.


PDP-11 architecture is nice to implement in microcode, it's probably a little bit difficult to make it a RISC given that its power and simplicity comes from the elegant addressing modes encoding. The VAX was nice too, and the Tahoe/cci (kind of 3 address extension of the VAX IIRC).


ARM is like that now (which was ironically invented by Acorn in the UK for the UK education market).


In fact this explains a lot. Thanks for pointing it.


People are worshiping x86 ISA?


A very good point you make is those reference manuals.

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_...



Offtopic: I just noticed that the bbs' videoplayers volume goes UP TO 11!


It's... one louder, innit?


No.

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.


Those are first-world kids, with rich parents.

A $15 computer is obviously not targeted at that market.


A very reasonable statement. This is not, however, the argument made in the video. They are explicitly talking about the UK's future.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: