Hacker News new | past | comments | ask | show | jobs | submit login

One thing I liked from Mindstorms was the concept of Microworlds. (Both names have since been turned into product names, but seemingly unrelated to the actual ideas.)

Turtle graphics is one Microworld, specifically based around geometry. Hence its relatively novel use of angles and lengths instead of coordinates.

Each world gives people something to explore. That they do it programmatically is interesting, and allows for different kinds of exploration, but it's the world they are exploring, not the code.

Mindstorms hints at the idea that there should be many such microworlds. Maybe they all use Logo, or maybe not.

What didn't happen is all those other Microworlds. But some have happened: Processing (https://processing.org/) is one example. And I think it's notable that "Processing", the graphical approach, is treated separately from any particular language implementation; Processing.js is another valid implementation of the same microworld.

But there could be many more! And I think it's much more interesting than yet another puzzle-based block programming language to teach coding.

1. Choose Your Own Adventure approaches to nonlinear fiction, which starts without any programming but easily opens up into all sorts of other complexity. (http://twinery.org/ is an example implementation)

2. Music generation. (e.g., http://foxdot.org/)

3. Lots of procedural generation, really. Something as simple as cartoon face generation could be interesting. But starting with primitives (like in https://happycoding.io/examples/processing/creating-variable...) hides the fun and interesting part behind graphics coding.

4. Eliza, in her original implementation, is like a very simple programming language for interaction.

5. Quiz generation. Writing a program that creates a math worksheet seems dumb, but I think a lot of kids would find it both interesting and satisfying.

6. Agent simulation (ala https://ccl.northwestern.edu/netlogo/docs/)

Of course all these things exist, but they often aren't matched up with an appropriate introduction and a humane programming environment designed to actually work for children. Working towards that – and doing so with a love not just for programming, but for the concrete (if simulated) worlds you are opening up through programming – could lead to something much more interesting than a lot of current technology-based education.

Explorable microworld is an interesting way to think about specialized Language+IDE combos.

For example I like LiveCodeLab[1] a lot, and it’s also a fun tool to intro total beginners to the pleasure of programming (“write and something happens”). It has very few primitives, but you can build some very interesting live visuals, and the language is build on interesting choices driven by its live nature [2]

Another great combined tool is OpenSCAD [3]. It’s really a computational tool to explore solid, printable objects, and thus seems to fit the microworld category.

A weird, niche one is Context Free, that didn’t grow like Processing but has it’s own advantages and particularity (like how randomness is managed) [4]

[1] https://livecodelab.net/ [2] https://rumblesan.com/static/LiveCodeLang-Farm2014.pdf [3] https://www.openscad.org/ [4] https://www.contextfreeart.org/

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact