There seem to be many online environments where you can type your {html, css, javascript} code and run it. For example, MDN has one at
https://developer.mozilla.org/en-US/play
(Unfortunately it has advertisements... which I suppose is incentive to learn how to use custom stylesheets.)
I wish there were an offline environment like that built into firefox. You can bring up a javascript console, but it's not easy to just type in code and run it. And something like visual studio code is capable but also large and complicated.
> I wish there were an offline environment like that built into firefox. You can bring up a javascript console, but it's not really a friendly development environment. And something like visual studio code is capable but large and complicated.
That seems like a day project in electron. At least to MVP. Use CodeMirror or Monaco. As long as you pass the right options you can run the user's code in an iframe in a separate process. That way you can kill it even if it has an infinite loop.
I use BBEdit whenever I do web stuff (caveat: not a pro web dev) — if someone wanted to learn HTML/JS from scratch, I'd suggest a plain text editor like that.
Krita has: https://scripting.krita.org/lessons/introduction
while for Inkscape there is: https://inkscape.org/~pakin/%E2%98%85simple-inkscape-scripti...
Webmaker[1] isn't built in, but it does offer an offline code playground
The programming club does some pretty cool game things.
Trying to figure out if it can handle proper full res camera input, looks like the optical sensor is a bit limited. Maybe these ports don't have enough bandwidth, tho. EDIT: Looks like the Exp level has the "AI Vision Sensor"
Two schools of thought are 1)Software is the key to robotics - so the more powerful brain / camera is the selling point 2) Mechanical interfaces to the physical world is the key - the VIQ ecosystem makes this practical at a pretty low cost. If you root around on ebay for HEXBUG VEX ROBOTICS you can see lots of the plastic kits for sale that can give you parts that make something that you can later frankenmash into other things.
Good luck with your adventures!
But I take huge issue with some of the 'deliberate' limitations. No function returns? No way to share code blocks? These are some of the fundamentals of code.
In my experience these limitations present a big barrier to kids who want to just get some things done, and teaches a very hacky style to those who are willing to learn the complex workarounds to overcome the barriers. Ultimately it leads to the majority being 'confined' to doing typical simple scratch projects, and a small 'elite' who go beyond. Possibly the opposite of what was intended.
But it works as a next step for sure.
It's complex to even decide what to jump to, then there's setting up the environment, learning text editing and syntax, usually much more complex (and completely unfamiliar) graphics libraries, etc. And then they can't share projects so easily and aim to be curated, etc.
I like lua and love2d as the next step, as it's much simpler and cleaner than kitchen-sink Python (don't get me started on significant-whitespace), but it's still a big jump from Scratch. I wish there was a Thonny for lua though.
I agree though that debuggers are usually too complicated - print-based troubleshooting will be enough to start with.
Scratch has no local variables, no recursion, no pointers or references, and no data structures, correct?
It's very unlikely the school is digging deep in Scratch. Most likely they are keeping to the very basics - and a kid can go deeper on their own... or not.
As the next step, moving to python or whichever other language is okay. And I doubt very much that at 11 they are already exhausting Scratch. A web browser and javascript is fine too.