I can almost relate. Consider comparing Raspberry Pi to say Commodore 64 or ZX Spectrum. Anyone familiar with programming 8-bit home computers of the 80's knows how simple they were by their hardware and how easy it was to grasp them. What was(and still is) great about them, is that any kid(regardless of age, as long as they can read) was and still is able to learn how the computers work. How many kids these days get to actually count CPU cycles? How many even really what it means without taking an university course in computer architecture or microarchitecture design? Yet, this is the exact stuff the kids are interested in! They want to learn how it works. And no, explaining that CPU executes some "instructions"(what are they?) which operates on "data"(what is it?) in "registers"(what are they?) and produces results which are "pushed"(what does it mean?) to the "stack"(what is it?). Of course, one could argue that none of this matters nor it should matter. We should go away from it, and aim higher. Teach Python and functional programming and hope they become proficient. I think this is a very wrong approach to teach kids about computers and how they work. I think that demystifying the computer starts best from explaining what and how it does what it does. Programming comes later in regards to demystifying the computer, which should not be "just that box which we program and somehow turns the code to windows and buttons for us to click".
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.
When I was a kid I got my indroduction to programming on TI graphing calculators. They are unfortunately expensive (though pretty much every American school has boxes of them sitting around already) and lack the pinouts that Arduinos have (there is an IO port which isn't great, and USB which... is ok.) but they are otherwise fantastic for this purpose.
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.
I also learned on a TI-83 (handed down from my sister) and a TI-92 (from the boxes at school).
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."
> Yet, this is the exact stuff the kids are interested in! They want to learn how it works.
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.
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.
That is very different from what old 8-bit home computers are like. You have complete control over the system, you can write self-modifying code, you can overwrite parts which are used by the OS to manage graphics modes and so on. There are no restrictions, it's just a bunch of ROM and RAM and no limitations.
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).
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.