bh/Jens, can you please explain the Lisp code feature a little more?
Blocks all the way down is really exciting. I thought it seemed like a potential feature bh mentioned in the past, and sure enough here's at least one reference to it, from 2016. Plus kinda a BYOB3/Elements throwback!
What do you mean by "overloaded". In my mind, I thought you were saying the the library has custom definitions for the blocks, which overload the existing definitions, which is not the case.
Nope, I just meant new functionality was added to the primitives, though actually SPLIT was overloaded with a new case when the input is text and it's by blocks, but OF just gets more menu items I suppose.
Education Development Center, Inc. They're a nonprofit research and curriculum development group who worked with us on BJC (the Beauty and Joy of Computing curriculum) and are now using Snap! to build pedagogic restricted environments (which my colleagues insist on wrongly calling "microworlds") for early-grades math curriculum.
I'm not sure that Libraries is really the right place for those, but that's another discussion for later.
This is one of those issues that nobody cares about except me. The original meaning of "microworld" is a playground for investigating some topic without a specific curriculum. The paradigmatic example is Andy DiSessa's physics microworld, in which he added a KICK primitive that applies an input force in an input direction. Since sprites don't really have a mass, it's taken as 1 (in some unit or other, doesn't matter), so the force value is also the acceleration applied to the sprite. As the animation continues, the sprite's velocity changes based on its acceleration. So, a problem you might pose is, if the sprite is moving up the screen and you kick it rightward, what will its direction (that is, the direction of its velocity vector) be? Alternatively, if the sprite is moving up the screen, in what direction must you kick it so that it starts moving rightward instead?
The point is, a microworld is a programming language that's been enriched with domain-specific primitives. Most of the libraries could be considered microworlds, but usually the intent is different (pedagogic richness vs. practical utility). What the Snap! gang are calling a "microworld" now is a programming language that's been reduced by removing (i.e., hiding) primitives. This is an etymological confusion; people are interpreting the "micro" as meaning a language that's tiny, compared with the regular language, whereas in reality it's the world that's tiny, compared to, you know, Earth, wth billions of people running around as well as all that nature stuff. The language is expanded.
</rant>
PS: I guess I didn't answer this:
I dunno, maybe a "puzzle"? Because that's what they are, a kinda-language narrowly focused on answering one question. "Rearrange these five blocks into a script that finds the smallest number in a list."
Microworld is just another term for Domain. Domain specific languages can both add and limit functionality. EDC developed microworlds that let elementary school kids explore math concepts, such as the - bidirectional(!) - number line. The prefix "micro" actually implies something "less than" a full world. I think there is a lot of value in abstracting away the complexity of "everything" to create learning environments that let kids safely explore certain ideas. Like they sing at Disney World: "It's a small world after all".