You type in some C-ish code, it gets immediately executed and drawn. Instant feedback was a winner feature here. Graphing y=f(x) was AFAIR as simple as typing "(x)" in the first line and writing an expression in the next. "(x,t)" for time-varying singals, "(x,y)" for 2-d functions with values viewed as colors, "(x,y,z,&r,&g,&b)" for full-voxels, etc.
I don't even remember how this little program found its way to my hard drive, but I had a lot of good times with it.
Me and my boyfriend are both math nerds and will both love this :)
It was as game-like as most entertainment software of its time, but it subtly forced me to learn some math in order to create complex shapes.
I think of Minecraft as a similarly clever idea.
The physicality of the Logo turtle robot we had at our school back in the eighties was what made it "click" for me. Playing with something connected to the real world takes it to another level.
But Scratch is one step up the ladder to me. It is a commitment to an eco-system and a super nice but blank canvas.
I find Logo to be simpler and more limited. This is a "good thing"(tm) when getting kids hooked. The first hit should always be free :-)
I have gotten some of my non-technical friends to buy mbots. They like the idea but the learning curve was to steep for them.
Their hardest struggle was dragging the blocks around with the touchpad. It would have been less frustrating to have a keyboard-based interface I think. (Now that I type this, I realize maybe I should have tried a two button mouse for them.)
It allows extensions in the form of Lua scripts. There is an extension  that opens up a TCP socket which can be used to modify the environment in any language across the network. There is an accompanying Python library  that is quite accessible (I had to use the 2to3 tool to seamlessly convert it to Python 3 because of some dependency problem).
I've been trying to get it to work in WebAssembly (some notes here ) and maybe connect Blockly / Scratch to it, but unfortunately the WebAssembly shared memory model is postponed due to the Spectre and Meltdown debacle .
My son and I made a minecraft version of snake/tron where each player would leave behind a trail of TNT blocks as they ran around a closed arena. Hitting a TNT would set off such huge chain reaction of explosions that the raspberry pi couldn't handle it. After a few rounds of these explosions the minecraft world looks like a total wasteland.
It's a scratch like programming environment that lets you do all kinds of cool things in Minecraft.
ProgKids is a Russian site that integrates Snap! (and Python) with Minecraft, so kids can visually program 3d turtles that move around in the world and build things!
ProgKids. Строим дом, а потом ещё пару (Building a house, then another couple)
ProgKids. Куда же без зверей? (Why do you not have animals?)
ProgKids. Как работает Snap? (How does Snap work?)
It's a text-based protocol, so you can even use via telnet/nc. The python API included with pi is also just a thin wrapper around this.
What are some decent general tutorials for programming voxel games?