Seriously, read the prologue of How to Design Programs: http://www.ccs.neu.edu/home/matthias/HtDP2e/part_prologue.ht... It's clear and accessible, but introduces programming in terms of values and the idea of animation as a reduce/foldl of a function that returns image values over a list of frame numbers. Incredible stuff. And as a bonus DrRacket is simple enough for kids without compromising much on capability.
It's a functional language, but I'm not convinced that an object-oriented language is good for an introductory language, anyway.
I plan to start my 7-year-old daughter on Elm in the next few months. She's already playing around with various introductory programming activities on Sugar OS (Turtle, etc.).
I'll report back on how it goes.
But I agree that a revived HyperCard would also be a great environment. My family was all PC growing up in the 80s, so I had no exposure to HyperCard at that time. But reading about it retrospectively, I'm impressed.
One of these three is entirely non-obvious
image 472 315 "/stack.jpg"
Insert Image "/stack.jpg" with width 472 and height 415
image {width: 472, height: 315, filename: "/stack.jpg"} image Image { width = 472, height = 315, filename = "/stack.jpg" }It requires programming knowledge just to set it up.
Most beginner Hypercard apps were just multimedia pages hyperlinked together. You can do that now GitHub right now and publish it immediately to a web site. It was fast and easy to get my 10-year-old daughter a GitHub account and show her how to use the online editor. Then I showed her HTML and CSS and let her loose. I set up github pages and gave her instructions to pull to that branch (which took me a while to figure out but she took right to it.) She took my netbook into school the next day and blew away the kids in her project group with it. Then she got bored and hasn't wanted to mess around with it anymore. Oh well...
What's cool is that as I made these games I kept wanting to add more to them (interactivity, sounds, etc) so I ended up doing some scripting as well.
As a 12-year-old, this was amazing - my first introduction to "programming" but I didn't know that at the time.
As an aside, I sold it to my school mates for 50p a copy. When they asked why they couldn't just copy it themselves I told them I'd installed DRM on the floppy disks.
They believed me.
What that kind of a stack enables is potential. So you're happy with your app. Take what you already know, learn about a server and a client and make a scoreboard. Now you understand client/server you can make it collaborative. etc.
jQuery makes even that learning curve a lot easier (e.g. $('.text-box').text() instead of whatever even hackier stuff I was using back then).
There's some advantage to a stupid simple DOS computer with a copy of some BASIC implementation and every math textbook from grade 3 on having BASIC programs at the end of every chapter or section.
I could not have gotten through my teenage years without HyperCard and ResEdit.