Why Raspberry Pi Is Unsuitable for Education
whitequark.org
whitequark.org
Of course, I am ignoring the point that actually getting to do any kind of programming or tinkering on Raspberry Pi is orders of magnitude harder than on say Commodore 64 or ZX Spectrum. Or even your average Windows desktop. These days there is just simply no suitable platform to actually play around with, and only universities seem to have some experimental simple hardware setups with simple operating systems for educational purposes. You really have to take a course or get an ancient home computer to see how stuff works. I think it is sad.
Have you seen the Maximite computer?
(http://geoffg.net/maximite.html)
Searching HN shows several references (a couple from me) about this interesting device.
It should be really easy to emulate a Z80 / 8080 era CPU with nice graphical outputs for address lines and everything else. And being emulated means that single-stepping this device is easy. Toggle switches for input are optional.
All I can do on a Raspberry Pi I can do by installing a Linux distribution on my laptop. It's exactly the same thing, and infact it's far easier by using available x86 hardware.
The whole essence is to simplify things so much that you can really go down to the real metal. direct framebuffer access, direct memory address dereferences, instant crashes upon doing something stupid.
Say you buy an used C64, plug it in your TV and turn it on. What's the stuff you are presented to? 5 lines of greeting text and a BASIC prompt! You immediately get to write code the exact moment you turn the thing on! How cool is that!? No installing software, no getting keyboard or mouse, nothing. Just connect the thing to the TV and the power cord to the wall and you're good to go. Of course the machine comes with user manual explaining the various CPU features and BASIC language and so on, very simple. Nothing equivalent to this is offered these days(although the demand for such is lower too, understandably).
The TI-BASIC on them is dreadful slow so after you cut your teeth on it and learn the basics of just what programming is, you are encouraged to switch to assembly. In the case of most of those calculators that will be Zilog Z80, of early PC fame. On the higher end calculators you get Motorola M68k's, which you can also program in C fairly easily.
Plusses over Arduino are the keyboard and screen. Downsides include the lack of shields. Anyone who really gets into it is probably going to want to get an arduino anyway, unless they really lack an EE muscle.
However, I much preferred my HP-50g, USER RPL was an absolute dream to program in, the USB interface was fantastic, an emulator was readily available, and you could even write applications in C and cross-compile them for the calculator.
That and RPN with a multi-line display and an [virtually] unlimited stack is the "one true way."
Speak for yourself! When I was a kid I was more interested in computers than anyone I knew, and I was the first kid I knew to own my own computer, and yet most of the educationsal stuff I could find on computers was the sort of stuff that explained all about registers and CPU cycles and the like. I had ABSOLUTELY NO INTEREST in that stuff, other than a quick overview of how a computer is even possible. In fact, I found all this low-level stuff being foisted on me as incredibly tedious. I also had a motorcycle when I was a teenager, and I found all the nonsense about registers and CPU cycles to be like trying to explain to me how a carburetor works when what I had asked was how to do wheelies.
I was much more interested in high level languages because they let me see how I might potentially accomplish amazing feats. I found Basic to be tolerable, but the first thing that I found to be truly inspiring was APL, due to its mathematical elegance and its providing a vision of amplified productivity. And you can't get farther away from the hardware than APL!
On the other hand, later in life when I went to college, I did find it very interesting and inspiring to learn how to build (and to actually build!) a micro-controller out of nand gates and an EEPROM. Registers, CPU cycles, and the like, are the monkey in the middle. Too low level to be fun, and too high level to let you feel like you really understand things at a fundamental physical level.
The real problem of the Pi, and not just as far as education use is concerned, is the crap Broadcom chip. After working with Broadcom, I would never-ever-ever consider them if there is an alternative. They strangle open source (which is shooting yourself in the foot, really, being that the community produces the best drivers out there), don't release documentation and won't even sell you the actual part unless you were buying millions.
The chip itself is outdated, bug ridden (Synopsys DWC USB, anyone? I'm making good money debugging the drivers of this DWC USB for my customers - one with a proprietary ASIC and one with an obscure Chinese craplet chip - so I know first hand how bad it can get, especially with the earlier versions) and has very lacking, if any, documentation available.
TI are the polar opposite of Broadcom in these regards: they nurture the open source community and encourage it to use their processors (Pandaboard ES contains a very high end OMAP4460, same processor as Galaxy Nexus and the weird sphere Nexus media thingy), providing near complete documentation and lots of technical knowledge.
The Pi design team essentially chose a bad foundation just to grab some headlines with their lowball pricing. Now people are slowly realizing how bad of a platform it really is.
A side effect of the Broadcom attitude is that even with a full manufacturing file for the Pi, no one can reproduce the design when the CPU can't be sourced. So much for openness.
I'm waiting for one of the mainstream manufacturers (TI, Freescale, Samsung to a lesser extent) to pick this up and sponsor a super low cost, basic board. The benefit to their commercial customers from the creation of a broad community and code base would be immediate and immense.
Why does an open source architecture have to be esoteric? It could just as easily be conventional. We don't know for sure that ARM will be as popular in the future. Presumably aim isn't to teach individual intricacies but rather the overall concepts.
Second, even if you had a similarly performing architecture, unless some major manufacturer with deep pockets picks it up and fabricates a chip around it, there's not much you could do with it outside of FPGA experimentation (for something that can mimic the power and peripherals of the Pi, with all its shortcomings, you're like to need a multi $k Virtex FPGA).
Third, ARM is friendly enough to its partners and the ecosystem that it won't be going away for a long, long time. It's a reasonably open company as far as documentation goes, and do their share of community contribution. ARM was smart enough to grant architectural licenses to the only companies rich and smart enough to make their own architectures (Marvell, Qualcomm, Apple, Samsung and a few others), so they can spawn their own variants while still retaining standard ARM compatibility.
I don't see any company seriously threatening ARM's dominance for at least a decade. If you want to do embedded systems or mobile (and soon servers) low-level, you need to know ARM.
Some documentation is at https://github.com/hermanhermitage/videocoreiv
It hasn't been updated in a while as I'm operating under a self imposed embargo - the reason for which will become obvious soon.
Always looking for more input.
(EDIT: There is also a plan to release a beginners guide to reverse engineering).
But I'm tied up launching a startup right now...
Definitely want to build a community / set of projects around it.
(EDIT: Let's also be clear there is a game of chess in play - hence the slow disclosure here.
My interpretation from reading various articles is Eben is fairly libertarian, I'd expect him to be pushing to open up everything possible - but Broadcom will be providing the usual big company resistance. So if the pieces are played correctly we will have everything open to the extent it doesn't impact the commercial objectives of Broadcom. In this case I suspect we will at the end of the games-play have open source where it needs to be, and at least have a hook for letting people write custom VideoCore Scalar/Vector and QPU code kernels with suitable documentation. This would be a lovely compromise. I'm sure Eben himself would be all for open sourcing his shader compilation VideoCore stuff (see the topic of his PhD thesis) - as everyone enjoys seeing their work get some recognition), but I dont think Broadcom would allow that :). )
Kids can still have a fully working linux system hooked up to their tv for $35, which regardless of the OSS status of the hardware is still a win for education in my opinion.
You might be right, but context matters.
Me pulling my "cranky old man" card-- As Louis CK says, "Everything's amazing, nobody's happy."
My first computer was a 4K Tandy Color Computer, which cost something like $400 in 1982 (a significant expense at the time for my parents), and I learned to program in MS Basic.
To me, the Raspberry Pi is a huge win. It can do a million more things than I could do as a kid, and it's not relegated to loading code via cassette tapes or typing (we had to copy code verbatim from magazines back then).
That the device is so inexpensive makes the barrier to get into programming lower than it has ever been... Amazing.
Another way to look at it is the the Author thinks everybody should learn to drive in a Porche. We all know 99%+ of us don't and start of with a cheap almost end user car and that is what the Pi is in many ways, cheap, effective at what it does and for those who want to go further then they will at least have the foundations to move on with solid grounding.
Sure some parts operate on closed source low-level hardware but who's to say that might not change later on down the line and to lambast it on that one area is missing out on so much.
Actually the point of the Raspberry Pi IS the price because most of the OSS you can install and use in your Raspberry Pi can be installed and used in any regular PC that students may have at home, but can we assume all the students have a computer at home?
My partner works in education and I can tell you that lots of students don't have access to a computer at home. Well, Raspberry Pi price changes everything!
Edit: Which is not to say, I don't think more openness would be a wonderful thing. But it's not necessary for it to be a success in schools.
Some of the best young minds will search behind doors they are told not to look.
Its about getting the height of the hurdle just right!
http://jdanddiet.blogspot.co.uk/2012/02/crl-feature-extras-i...
1980s home computers didn't come with these, even though they had (for the time) very powerful custom graphics and sound chips (eg. Amiga [1]). Of course, some of it was reverse engineered, and some of it has been released long after the fact.
It's silly to describe your one-off use case and then extrapolate that to such a degree, that this can only be called sensationalism.
No they don't. That section talks about broadcom, who are the ones who you will need to give business info to to buy the chips. The foundation don't manufacture, sell or provide documentation for the chips.
But I demand the documentation for the chip. Give it to me!
To get the full SoC documentation you would need to sign an NDA with Broadcom, who make the chip and sell it to us. But you would also need to provide a business model and estimate of how many chips you are going to sell.
I'm not even sure that the pi was developed with the intention to teach "low level" stuff.
Sure. And the Hacker News crowd loves people who point out statements that are not strictly true. Hey, who cares what the author actually meant, this line here is wrong!
If it's not wrong then it's misleading.
The idea should be to make programming simple and accessible, perhaps being able to create some games or connect it to an arduino and make some fun toys.
I actually think that shipping it without a box is great idea, it demystifies computers a lot if you can see that it all just boils down to a bunch of wires and chips on a PCB. Making a custom case could also be a great Design/Technology class project.
Is it a perfect open platform? No. Is it a lot more open and inherently tinker able than a locked down Windows 8 PC or an iPad? Hell yes.
As the article mentions, this doesn't seem to be as easy as it should/could be.
1. Get USB cable
2. Plug USB cable to Arduino
3. Plug USB cable to RaspPi
Steps 2 and 3 can be reversed.
The bedrock abstraction (usable languages etc) is higher than the hardware. The hardware we don't care about. It's disposable. In fact, you can drag pretty much anything you can do from the Pi onto another platform and carry on.
If the languages chosen were pretty tied to the hardware, then I'd worry i.e. if people were using it to learn ARM assembly or were developing early UNIX versions on PDP11s. But they're not.
It's suitable for education only because it's very cheap, it's functional and the bedrock abstraction is higher than the hardware.
But it does open up a whole new add-on market for kits which in itself can only be good.
Unfortunately, I believe Rpis sales were hype marketing that got out of hand. People thought they were getting a tiny usable computer at a great price. What they got was a bunch of chips that knowledgable people could use, yet the details go way over the head of the majority of impulse buyers. These buyers weren't missold, they just didn't have a clue what they were buying.
The "education" release of the pi itself hasn't happened yet, that's meant to be coming later this year / early next year from what I understand, and will be supplied with a lot more useful getting started documentation and software than you currently get.
The typical computer science curriculum from the 80's involved learning programming with PASCAL or C, a bit of Assembly, then Compiler Design and Data Structures, followed by Data bases, operating systems, and if you were lucky distributed systems. Along with a healthy portion of set theory, complexity analysis, algorithms, and logic.
The key is that very little of the typical Computer Science degree involved actually writing a device driver or looking at the code of one. It was more about what the role of a device driver was in abstracting what hardware could do into easily used function calls or object methods.
If there was a cheap 'terminal' you could do most of that with a very inexpensive board (even a soft-CPU if you wanted). I've been working intermittently on exactly such a system, perhaps the next time I take a break from working full time I'll finish it, I doubt the development of such a system would be particularly profitable (even as a 'lifestyle' business).
But the point of this response is that to rant effectively you need to state the problem, and I don't think the author here does that, what learning is prevented by the restrictions on the Pi? What percentage of all the learning you might do is that? Who is effected? None of those questions are explored. I really liked Limor's response (LadyAda) which went to the things you could do rather than focus on what you could not do.
[1] http://www.digikey.com/product-detail/en/Z84C0006PEG/269-389...
I got far enough to see the first section was about whether the internals of the CPU were open source and thought "Why would I care about that if I'm trying to teach a kid to program?". I then very quickly scanned the article to see if there was anything that was vaguely relevant to the average use that this is intended for, decided there wasn't and closed it down.
Where do you stop when going down the layers of the stack? The article mentions OpenRISC but neglects the fact that the FPGA's that can run its HDL use proprietary, vendor-specific toolchains.
What about the peripherals? I don't know of any open source DRAM chips that could be used for the electronic designs. It's not a viable business model and never will be in such a competitive market I imagine.
In the end, the biggest value boards like the Raspberry Pi provide is accessibility. Every kid can have a computer of his own without worrying about getting scolded by mom for corrupting the disk. They give children a sense of control over these amazing machines which consequently allow them to dream up weird and crazy things they can do. Their real education lies here.
What else do you really care about? It's not the last and final RPi that will ever release! Things will only get better.
The Pi has picked up a pretty big following in the HTPC crowd. When you're using it as a HTPC, you need GPU acceleration to play any sort of HD content. Without these licensees, it's far less useful as a HTPC. Apparently "promoting" WebM means "make every reencode all their content into an open format".
Anybody know a difinative reason why this is the case?