Thanks for the great, engaging responses everybody. :)
@eeeps: Calculator programming is something I would have loved to have got into, but those kind of calculators were far too expensive. I would gaze at the different models in the home catalogues, dreaming of the possibilities. Physicality is an important part of the desire to program a device IMO. Calculators lend themselves greatly to this as they have an array of buttons to play with and any kind of computer portability was very special back then; especially in something as small as a calculator.
I briefly used a ZX88 (https://en.wikipedia.org/wiki/Cambridge_Z88) in middle school, a device I would have adored to have proper access to to do some programming. The form factor lends to the imagination. The PC has always lacked that imagination-factor IMO.
“it's obscured by an avalanche of additional functionality that computers now have.”
Not only that, but developing software is no longer considered a primary function of a computer that a consumer wants. Even the venerable task of Word Processing has disappeared and been overtaken by 3GHz 6GB RAM laptops used solely to check Facebook. I don't believe that everybody wants to be a programmer, or even needs to be -- It's a particular mindset IMO -- but I feel it necessary that my child learn, if nothing else, that the computer is a tool that they can put to use to help them in whatever it is they _are_ interested in and therefore they don't have to be beholden to walled gardens and "content-providers".
“What exactly are the rough spots that need smoothing over, and how can it be done without sacrificing too much functionality?”
The difference between what I suggest with JS-BASIC and existing frameworks, particularly game ones, is that we are not outright hiding complexity, we will instead provide shortcuts only. Nothing will prevent the programmer from mixing "real" JS with JS-BASIC, so functional holes can be filled in with all the usual JS. JS-BASIC will only provide helper functions that shortcut the needlessly complex APIs in JS, such as audio synthesis.
" In what ways would it be different from any other JS library like JQuery?"
jQuery doesn't simplify difficult programming concepts for children such as OOP, parallelism and browser behaviour. Even with jQuery, you still have to write a framework to get a working game-timer and frame-buffer. We can build those in and make them implicit.
We can actually include jQuery and build off of it. It's a great way of navigating the DOM and we can include some jQuery as part JS-BASIC so that the child can 'get things done' as well as learning some jQuery along the way -- practical and not wasteful knowledge.
“What then would be the path from this simplified JS to full-blown JS programming?”
As highlighted before, JS-BASIC would be simple shortcuts rather than a replacement for any of JS. One can either use the JS-BASIC command, or do the same thing with several JS commands. Since the child will be learning JS at the same time as using JS-BASIC, this shouldn't be a difficult concept.
“The main things that make BASIC (and Python) simple and accessible seem to be *natural language* and a certain *linear logic*.”
“helping to expose the creative power of the browser without burying it under a proprietary, pre-packaged interface is a worthwhile project and I hope this idea will continue to grow.”
Thanks. It's great to know there are people out there that understand the concept and the direction of what I'm suggesting.