Ask HN: How can I make a “kid's computer” today as good as an Apple II?
When I was a kid, I had an Apple II with a BASIC interpreter, Print Shop Pro to make really cool cards and banners, Where in the World is Carmen Sandiego to learn about geography, Pinball Construction Set, Number Munchers, Oregon Trail, and LOGO for programming the turtle.
Today I can't see a way of giving my kids a computer like that, where there are a lot of open-ended ways to create. The iPad games are too directly educational, or mindless, and great creative experiences don't seem available on desktop or iPad suitable for early elementary schoolers.
Any suggestions here? I will be happy to pay $.
243 comments
[ 0.24 ms ] story [ 170 ms ] threadhttps://www.raspberrypi.com/products/raspberry-pi-400-unit/
These are about USD100 a pop and need a HDMI screen and you're all set.
And then configure it to run a Basic or Python REPL on boot, to give that 1970s home PC feel.
I think the closest recreated retro-experience is the Commander X16[0]. The thing I like about it is that it specifically isn't a modern computer. Everything is simple right in the hardware. Other choices are often capable of running a full Linux but then used to run a script or emulator. There's definitely the realistic possibility of getting to fully know your machine, especially given that there's extensive documentation and a community.
Here's some hardware specs from c64-wiki[1] and it 'boots to basic'
[0] https://www.commanderx16.com[1] https://www.c64-wiki.com/wiki/Commander_X16#Hardware_specifi...
An alternative that is finished and can be pre-ordered today is the MEGA65:
https://mega65.org/
I don't necessarily think a kid would be interested in a glorified recreation of the Commodore 65, but it's roughly equivalent to the X16 in a lot of ways. Just thought I'd mention it.
[1]: https://github.com/linappleii/linapple
[0] http://virtualii.com/ [1] https://www.kansasfest.org/
The book getting started with raspberry pi was the best introduction to computing I’ve ever seen.
I just wanted to second this comment. I was skeptical that the book included with the Raspberry Pi 400 kit would be good or useful, but it is amazing. If anyone remembers the old Usborne introduction to computing/electronics/programming books, it feels a lot like those in some ways. If I was nine years old again and got that book, I'd probably be buried in it for weeks, trying out all the different projects.
The Raspberry Pi foundation also published a book on game development, which is also very much like a lot of the old Usborne books. Really great for kids who are a little older.
If you want your kids to dip their toe into the field of programming, show them around scratch for 10 minutes and let them explore on their own. Set them up with a scratch account and they can work on their projects on any computer with web access. My 10yo started with scratch a few years ago and is now starting to learn javascript. The real challenge to getting them into this stuff is the lack of boredom. Kids have so many options to keep themselves entertained nowadays that they tend to not be bored long enough to start tinkering.
My main ideas are:
(1) touch typing instruction game
(2) some way to interact with a very controlled group of people… maybe a mastodon or matrix server I run in the homelab and limit to our immediate friends.
I remember being amazingly proud of myself for getting an ascii version of Space Invaders working. I could, as a 10 or 12 year old, make something for myself that kinda looked like and was way more fun (for me) to play that _literally_ the most desirable and sophisticated "computer game" there was at the time.
I talk to a friend's 11 year old occasionally about "computer stuff", and he plays Fortnight and Roblox - and he just can't see a connection between simple child oriented computer programming, and Fortnight, which is what he would rather be playing than futzing around in Scratch (or even Minecraft).
I genuinely don't think many kids these days want t6o spend time playing with there LOGO Turtle, when they could be playing multiplayer games on their phone or iPad instead.
(And, to be fair, _most_ of the kids when I was in school just wanted to play Space Invader clones and not write Basic programs, I did most of my Basic programming in junior high on a BBC Micro, because there were not games on pirated floppy disks, which was what the AppleIIs were all in demand for. I suspect today it'll still only be a half dozen or so kids out of a school of 6 or 800 who _want_ to program computers, same as it was in '79 and '80. The rest of them will just want to play games not learn how to do magic...)
If you wanna give your kids the opportunity, I s3econd cons's suggestion of a RaspberryPi400. Add a spare HDMI monitor and you're got "the spiritual equivalent" of an AppleII. Don't get your hopes up _too_ high about your kids being the maybe 1% of people who choose to program for fun.
But at some point, my favorite game involved a scriptable server engine, and nothing brought me joy like updating the game that I had poured hundreds of hours into, with a simple line of text.
After that I went back to mainstream games like WoW and didn’t do anything like programming again until college (minus an attempt at AP computer science which I dropped because it was boring)
Programming is mostly plumbing anyway, so if your kid chooses differently, that's very ok.
Exactly. When I was a teenager in the 80's the kids in school came in three classes: the majority who did not know what computers were or thought they were lame, a minority who dabbled in the nascent gaming scene and an even smaller minority (of maybe 5 people in a school of 1500) that was interested in programming a computer. I happened to be part of the latter minority.
The gamers were all about getting the newest (cracked) games as quickly as possible. Meanwhile we were cutting our teeth on the internals of the c64. While we were lousy gamers with zero connections, we had a certain amount of respect in the gamer community because we were actually capable of programming the intro's to their cracked games. In return we got to feed on their scraps, so there was a living in that. :-)
My youngest daughter was begging me to get this for her when it came out. She spent ages in earlier years trying to figure out doing stuff with the MIT Scratch offline editor. She's not super keen on text-based programming yet (my elder daughter is and solidly resists my typed FP propaganda in favour of hand-typed OO programming), but these kind of visual programming environments do teach real agent-based algorithmic concepts.
I'm not saying your advice isn't better than something along these lines, but it's good to be flexible in terms of what advice you offer and be encouraging rather than prescriptive.
[1]: https://www.nintendo.com/games/detail/game-builder-garage-sw...
[2]: https://news.ycombinator.com/item?id=27058300
[0] https://www.youtube.com/watch?v=vTJH11qXtys
Out of curiosity, how old are they, and when did you start them on programming related stuff? I have a 5yo and 7yo boy. The older one is just starting to develop an interest in creating things, and recently took an unsuccessful (but still educational) stab at learning Blender.
1: https://www.lego.com/en-us/product/robot-inventor-51515
Kids sometimes like the simplicity of the old computer games, but as mentioned above, the old excitement at having your hands on cutting edge tech isn't there with a Raspi, or an old retro computer.
There's lots of great mobile games, why bad them all?
Minecraft, a couple educational games the younger one likes, machinarium, don't starve, lost journey.
I find that it's nice to say no mobile games but it's easier to fill that void with stuff that doesn't suck.
I guess we can always ban store access and only download the "good" ones, which is one solution that does not toss the baby out.
We used to look sideways at the engineers that "wrote drivers", but I see the appeal now. Even a programmer as jaded as me still gets a thrill when code I write for an Arduino is able to talk to a device like an air-particle measuring device.
My advice: go Arduino + peripherals. A "sound board" that can generate synthesized sounds would be fun to program — any kind of sensor that measures heat, humidity, air quality, etc. Motor controllers + robot platform of course....
Stuff is fairly cheap and there's so much out there.
Anyway school my kids are in uses older version of the inventor, librarian runs a class with that twice a week both my 8 and 6 year old LOVE IT. Meaning that is their topic of conversation and they remember which days they have it during the week.
Couple days ago 8year olds class had a bring your parent to school day so I did a presentation mentioning a game I hacked with a debugger as an ice breaker. Forget what I actually do for next 20 minutes all I was asked is how to hack Minecraft, how to hack some online game I don't know :o and not get caught. Blew my mind, teacher was looking sideways at me :)
Now I promised to compile a set or resource about modding Minecraft for the class. I am also thinking about setting up a website that kids can mess with using developer tool in the browser(super simple html with hidden "password" etc)
Absolutely. I work in the industry so I know exactly the monetization culture there. It is so deeply rooted that there is way to avoid that, at least on Android. I think Apple is slightly better but maybe not really. I'm sad that the whole industry got trained in that mindset :(
> Couple days ago 8year olds class had a bring your parent to school day so I did a presentation mentioning a game I hacked with a debugger as an ice breaker. Forget what I actually do for next 20 minutes all I was asked is how to hack Minecraft, how to hack some online game I don't know :o and not get caught. Blew my mind, teacher was looking sideways at me :)
This is really very good experience :) I guess it's also very proud of your children to have a cool parent.
It's like crack to my younger one. The pandemic has limited social contact, and she's ultra social! Like 11 on a scale of 10.
The moment she understood there are OTHER PEOPLE IN THAT THING, boom. Donzo, it's all she wants to do.
I think the combined editor and runtime environment of qbasic shortened the feedback loop and made it more fun.
I think he might be a future product owner as he was more than happy to give me requirements for a simple game, but had no interest in how it worked.
My mother at one point even installed and booted up Visual Basic for me once and I just didn't get it.
It wasn't until I was 16 or 17 before I actually started seriously getting into computing.
I guess some kids are "late bloomers" and some just don't have the aptitude for it.
I started later, and I attribute it to my parents being low-tech, and online discourse framing programming as "really hard" and something you just do to find a steady job (versus make something useful). I bet I would have started a lot sooner if I had different influences growing up, but at least there's still time to learn now.
[0] https://youtu.be/YoXxevp1WRQ?t=208
OTOH, "open ended ways to create" have grown as well. There's of course programming, but also office activities, desktop publishing, making simple websites. If they're interested in modern 3D games like Fortnite, they might experiment with the basics of 3D rendering and game development using something like Godot. They won't come up with the next AAA title, but simple, proof-of-concept arcade or puzzle games ought to be feasible.
Well, I wouldn't be surprised if part of that is simply that writing a fun game in Basic is really really difficult. Actually, designing a fun game, period, is really difficult.
I know I was interested in making games at a young age but I also knew I wasn't going to be able to make them in the version of Basic that I had on my DOS computer
Indeed, maybe only 10% of kids like it. The rest should go play with World of Goo. Then the Powder Toy.
To be fair, as a kid growing up in the 80s enamoured with BASIC, I didn't even want to play with the LOGO Turtle. It always seemed like the most boring thing you could do with a computer.
I think this explanation makes a lot of sense. I was that age a few years later and learned to program by building Flash games when they were at their peak.
It makes me wonder if there's a way to approximate that experience today, even with how far we've come. It doesn't need to be as high fidelity as Fortnite (most of my peers were far more interested in Call of Duty than Flash), but are there simple game engines that a kid today could get started with and quickly build something that's "cool" even by modern standards? Most I'm familiar with have a huge learning curve compared to a BASIC interpreter or even Flash.
And then on top of all of that they organize themselves into systems. My son belongs to a virtual "airline" that has an org chart, schedules "flights", and has dozens of players that run the show on a daily basis. And, like any other org, you get management disputes and daily problems. I see them better trained for what comes next than we are here, sitting around and talking about it.
So yeah, why would you draw circles with LOGO or blink LEDs when you can literally do all of this from an already-running desktop environment?
I have one very interested, and I feel it's worth doing. But, I'm way out of the loop on that one, meaning it's a time sink for me too.
But, maybe I just have to. Very interesting comment!
These days the online resources are lightyears better. I say let them explore and they will find their own path. You can't force this on someone and expect them to succeed.
Even if it's the power to say "wow, we've really come a long way, and what I think I would prefer to pursue is..."
My 13 y.o. girl sent me a screenshot of herself programming Python Turtle in Pycharm the other day :-)
There are games, and paint programs, but many of them seem too directed. Too much intention.
- I bought him a Kano computer kit when he was about 7. The kit retailed for about $250 at the time and a kid could assemble it "like LEGO". It came with educational software that introduced him to programming languages, etc. (Unfortunately I do not think they make this kit anymore.) Verdict: MINOR SUCCESS.
- I tried to introduce him to Python (around 7.5) by following an online book about game programming. He did not show much interest. Verdict: FAILURE.
- I introduced him to MakeCode (arcade.makecode.com) around 8. He got absolutely hooked and it is still his favorite platform today. I bought him some cheap hardware (Meowbit) to put his programs on and he loves showing off his games to his friends and everyone else. Verdict: MAJOR SUCCESS.
- I introduced him to Godot when he was 9. He showed strong interest, built a few games in it and even understood enough of the Python like language that Godot has. He used this series of YouTube videos to learn about Godot: https://www.youtube.com/watch?v=HvPTSZl2WCc. Verdict: MEDIUM SUCCESS.
- We are currently building Ben Eater's 8-bit computer (eater.net/8bit) and he absolutely loves it. He is able to follow along with the videos and understand the material at a good level. He has named the computer "Terry". This project does require a lot of my own time. Verdict: MAJOR SUCCESS.
We have also tried other projects (e.g. Raspberry-pi with Raspbian, Arduino, Robotics kits, etc.) although nothing that he showed major interest at the time. I think you have to try with different things to see what will capture your child's imagination.
The "hacker" community around Mindstorms was huge in the 00's. After the RCX was reverse engineered, all sorts of language support appeared. BrickOS for C and C++, lejos for Java, NQC, etc. I bumped into lejos in a section on Mindstorms toolchain options for Macintosh in one of my dad's MacWorld magazines. He helped me set it up and that's where I started learning Java.
It was a life altering gift for me if there ever was one. The first large event that set me on my current path.
I honestly kind of miss the silly hacker/spy/matrix-y aesthetic of computing in the early 00's. It was fun when I realized those LEGO Spybotics kits could be targeted by some of the Mindstorms tools. Everyone in elementary school thought I was going to be an evil genius. Now I build storage virtualization systems. Oh well I guess.
Oh well, years later I got access to computers and ended up doing programming, but now that I could afford one, I cannot find them anymore :(
The parts should still be somewhere in my father's basement but getting them would take time. I found a new Mindstorms Robotics Invention System 1.5 on eBay (auction number 324365658011) if that is the one you are looking for.
I guess the cool kids learn CAD and just 3D print the parts they want, which is also awesome (I wonder if there is any research in recycling failed designs or prints back into filament)
I certainly do that with PCBs these days. The cost went down so far I just throw a design together in kicad and have them made for me and shipped over in a week or two. It's only a few bucks more than ordering protoboards and doing all of the wiring myself. I'll exchange a lunch out for that convenience.
Maybe it's not evil genius, but it sure sounds cool.
My college was still using the official Mindstorms sets for their intro to engineering classes, and so I recall finally getting my hands on the official Mindstorms software and finding it lacking. A classmate was using NQC to do it all, and his team let him do the programming. My team wasn't a fan of that approach so I stuck to the hardware.
Was that Robolab? I remember running that on an G4 PowerMac.
I always thought that the "Robotics Invention System" sets were the consumer oriented ones and the educational ones were a separate product line distributed by a company called Pitsco if I'm recalling correctly. Came in a green tub.
I see it being revised significantly which will be a breaking change. If not, then it is what it is.
c'mon, there have been millions of human hours played on games developed on engines or systems with not even 1/1000th of what Godot is able to achieve.
I taught her class Scratch. It does make a big difference which language you start with. I think how much you are involved with your child’s learning make also is a big part of the success.
I introduced her to MakeCode at 8 and we used the microbit to build a robot with legos and servos.
This project was such a hit that her principal asked me to teach it to the middle school kids.
http://github.com/antirez/load81
Pretty much the bees knees to run on older laptops ..
If you make something that doesn't have a website browser and can't play a youtube video young people won't see it as a computer.
It's easy to forget that BBC micros etc were popular for games, and being fully fledged computers, as well as educational devices.
I've begun to think that learning what's hard and important about computers, and experimenting, doesn't require a computer. A computer is just one kind of sandbox. Building a structure, fixing part of a car, these have more in common with our experience of tinkering with computers than anything offered now by the social media world. Really, computers should be just another kind of mechanical thing you know how to work on, build, take apart, etc. It's what's being delivered over them these days that's poison.
I was just given a BASIC manual around 1977 and started writing software, been doing it ever since.
I would have loved an FPGA dev board as a child, plugging TTL chips into a solderless breadboard was fun but there is a limit to the size of circuit that you can build.
That's how a lot of us got into computers, I think.
Not a computer but I think embodies a lot of the open-ended creativity of the Apple II.
The only problem with these is that, other than using lua instead of Basic or assembler, they are a little too literal an interpretation of "give me the same experience as when I was a kid".
I had a lot of fun as a kid playing Minecraft and building Redstone contraptions. Minecraft does invite tinkering with texture packs, mods etc.
So I'd say just go with a basic windows install on a normal PC.
- Codea - https://codea.io - it took a while, but eventually they found out that there's a few sample games, so they thought they'd found a loophole to "no more screentime for games". Then it took a bit longer until they realized they can tweak the source code. "Look at this, no gravity" or "Look at my high score!" (after tweaking the scores to increase in increments of 1000 instead of 1), or "Look, I changed the text messages" etc.
- Swift Playgrounds - they're not super fascinated with this, but I see them occasionally open it and noodle around.
- Procreate - they have an Apple Pencil, and any YouTube video about using Procreate is exempt from Screentime limits. This has led to a lot of amazing digital illustrations.
- Pages - just this simple built-in app is already pretty fun if kids are bored, and something is exempt from screentime. Last weekend one of them asked to go to Starbucks, because she's "writing a novel". She wrote a short story over ~5 pages, and was super proud of it.
- YouTube - in general, this is my least favorite app of theirs, and I try to police this the most. But any requests for videos where you learn things are exempt from screentime limits (case by case). E.g. Lego builds, origami, drawing instructions, "how to make slime at home" videos, etc.
This is a great question, and I'm eager to see what other creativity-fostering approaches are there. But to sum up my approach - limit screentime for mindless games, and let boredom take care of the rest.
I like to idea of using a DTP app (look at the old guy).
Have your girls tried the lessons at code.org? My ~6 year old really enjoys doing them. They're touch optimized which is nice as well.
I also kept them on linux (ubuntu) machines until they started high School - the reasons for this were 2-fold:
1) let them get comfortable with other OS's - they saw windows machines at school and ipads, this showed them that they were all 'just computers' and feel comfortable jumping between os's
2) security - oh man if you could see the amount of dodgy looking .exe and .bat files that are in the download folders.
My kids have now moved on to Godot and pygame, but an old laptop with Scratch was the key.
Another reason are the proverbial rose-colored glasses.
Yet another reason is just curation and sampling issues, since we now have a whole category of shovelware and shovelware-hybrids, the chance you'll actually stumble upon the really good stuff, is just way lower..
Are we ready to pay for curation yet?
The best part was "no distraction environment" no internet, no messages, nothing, you have to be bored a bit to get creative.
Though my daughter doesnt use it much (she did in the beginning), it is super hard to compete with modern entertainment which is so reachable and so instant. All kids get what they want immediately after they want it. I want a football, order online, it arrives same day. I want to watch this movie, they start watching.
I am trying to create some time per day, in a safe space where she can be creative and bored.
[1]: https://github.com/jackdoe/programming-for-kids/blob/master/...
You can get a nicely specc'ed ZX Next (https://www.specnext.com/) or Amstrad CPC6128 for the budget, or find an old C64 and deck it out with some solid-state storage (actually do this for all the machines, they all have it now).
My kids learned hacking on an Oric Atmos with a Cumulus drive (SD-card storage), which was just mind-blowing to see and also very, very inspiring for me personally, as a 40-year veteran of the art of programming.
These systems are still out there, and still work. AND, they are amazing - just look at the beauty of the 10liner Basic competition, which this year was won by an Oric Atmos program that implemented a fully working Lunar Lander game in 10 lines of Basic, custom graphics, sound and all!
https://gkanold.wixsite.com/homeputerium/games-list-2022
(Winning entry here: https://bunsen.itch.io/moon-landing-by-rax)
Failing that, check out the Clockwork Pi options: https://www.clockworkpi.com/
Did your kids get bored with those things when they got a look at an iPad? Or did they understand what they were looking at?
Just go for it. Even if your kids ridicule it, you'll have fun. :)
Here's another approach https://github.com/jackdoe/programming-for-kids
There's this prominent French artist who makes his creations on that device: https://twitter.com/Kekeflipnote/status/1487872156629413888
The device itself is not meant for professional work, therefore should be suitable for beginners and kids but obviously it is powerful enough to be used as a primary tool by a recognised artist.
The software he is using is Flipnote Studio 3D:
https://www.nintendo.co.uk/Games/Nintendo-3DS-download-softw...
https://geoffg.net/maximite.html
https://www.youtube.com/watch?v=XQA8lowEKOo
So I figured I'd address this question if or when I had a kid. I don't have kids. But I'm glad someone asked it the way you asked it; it's very important to me that kids should learn this way, by building things rather than having structures shoveled at them.
Quick side note. My dad banned RPGs in the house. My brother was a huge D&D fan but my dad said it encouraged "follower" mentality to follow a dungeon master's idea of the storyline; and he viewed all videogames with plot elements basically the same way.
OK. So how would I approach it? I'd make a language that took all the basic elements of code (vars, control structures, etc) and made them come to life the way LOGO did. The rewards of doing something cool have to be tangible. When I was 10 or 11, my friends and I had our own code competitions in Hypercard to try to make cool screen savers or little games. We judged each other and ourselves; we'd spend 72 hours and see who made the coolest thing and we'd be honest with each other if someone else's thing was cooler. None of this was "cool" at the time but it was like we had magically tapped into some power that other kids didn't have, and that was what kept us addicted to learning. We learned from each other and from our own mistakes. The two friends I'm thinking of from elementary school are both incredible developers and business owners now; one runs a very bizarre entertainment venue, and the other is a great writer who put out a bunch of games after working at Microsoft and Bungie.
So I believe they'd have the same view on it. Here it is:
1. Concrete results need to happen quickly 2. Introducing abstract concepts (arrays, complex data structures) should be challenging but lead to far greater results 3. Results need to be "pretty". But only in the way that encourages stretching your skills further. For example, if you start a kid in a programming environment where everything is a pristine 3D world, and their job is to program the behavior of an animal, then you've done most of the work for them; their work has to actually stand out and shine. The problem with too many platforms is that they reward the kid too soon. So you made an animal but it isn't really that different from every other kid's animal. The competition between kids is critical... and so is the ability to make something unexpected. LOGO could make unexpected artifacts. Hypercard was wide open, it was just a blank page. Kids' imaginations filled the gaps, and we all wanted to make Spaceship Warlock or Myst or the Journeyman Project from that page.
What I would do? I'd probably be a terrible parent. But my advice would be to get your kid a Commodore 64 or a TRS-80 and show them the manual for BASIC. And tell the kid if you want to play a game, make a game. Then get other kids to compete on it. The sense that you can create something from nothing using these tools is a powerful motivator. Then later they can see the world where it's all "been done" and they'll probably think of something like Wordle which wasn't quite done, because they've learned how to think that way.
Just my 2¢.
Any attempt to revive that sense of wonder has to be something that seems like an achievement, which is why Lego Mindstorms keeps getting a mention. Along that vein..
- If going down the Raspberry Pi route, look at doing stuff with sensors, servo drivers, that kind of thing. The CrowPi seems to be good for that.
- An Arduino educational kit with a bunch of electronics is really good - particularly if you can get it with a proper accompanying educational programme and all of the bits. Arduino is probably better than a Pi to get some introduction to embedded and electronics, because you don’t have to have an argument with your parents about whether or not systemd is a good thing.
- Good projects are buying LED lighting strips for their bedrooms and finding ways to turn them on and wire them up. It has to be something that you can’t get from Amazon Prime, so LED strips that you have to cut and solder make it much cooler.
- 3D printing is still amazing. Kids feel that they have produced something from nothing. The sense of wonder is definitely there.
- Radio controlled electric planes or drones are good. There is a fair amount of ‘programming’ involved (of radios, ESCs, etc), and it is surprisingly more complex than you would think. Start off simple though with a kit that has some self-assembly and upgradability.
Now I'm older and I have teenagers and I did try to recreate this experience for them: Logo, RasPi, MicroBit, electronics kits, etc. But the truth is that simple stuff just wasn't that interesting to them. They played a lot of minecraft and built huge automatons with redstone and chickens, and they explored worlds like Mario Galaxy (impressively huge to me). I guess they got out of that something similar to what I did with my Vic 20. I can regret that their experience is built on a deep stack of tech that they know little about, but I don't think they really cared about that - if they thought abut it at all.
New technology attracts enthusiasts - but then it fades into the background or fades away. When cars became things that normal people could own, there were car clubs for people who enjoyed messing with cars. Some of these clubs still exist. When sound recording became a consumer tech, there were clubs were people met to listen to and share recordings. Domestic CB radio was a thing for a while. Astronomy clubs still exist - from their origins in a time when it became possible to buy a telescope and actually do new stuff with it.
My advice is to look for ways for them to actively explore the world in a positive, non-passive, fun way. Equip them with the means to explore - don't try to teach them web development. Don't ask them to stick with one thing. There's a lot more stuff now - so its ok to try things and abandon them and move one. They'll do that anyway.
1) It had very fast storage for the time
2) It had excellent documentation in the box
3) The BASIC interpreters were better than what shipped with the Atari and Commodore machines
4) Apple LOGO was particularly well executed for something on an 8-bit machine
5) I had the impression it was easier at the time to get pirated copies of more sophisticated software like macro assemblers, Apple Pascal, etc for the Apple; Commodore and Atari circles were about the games
6) It had a built-in debugger ("monitor") with mini assembler
7) It had card slots that were straightforward to interface to - building real hardware for it was possible for a hobbyist. Also, it was affordable and practical to have an 80-column display
8) As you've noted the educational software for younger kids was exceptional
I just don't see anything remotely like that today but a used Apple II, and even then you're not going to have the ferment of early-mid-eighties home computer culture.
The counterargument is that today we have an embarassment of riches - the paradox of choice - and if you carefully select hardware and software and books for your kids (Scratch or Snap, paint programs, robotics kits, whatever takes with their interests) there's a much bigger world for them to explore.