3 ms·
That's a great illustration of where "kids tools" tend to break down: on the top end. They over-focus on the onboarding and initial experience, but then forget
by ethbr0 5y ago
That's a great illustration of where "kids tools" tend to break down: on the top end.
They over-focus on the onboarding and initial experience, but then forget to provide an escape hatch into more powerful concepts and methods (that all already exist!).
IMHO, we'd do kids a better service by just wrapping adult tools with "first steps" guidance, and then allowing them to click through to the full mode + additional docs when they're ready.
- sitkack 5y agoThat escape hatch is just the rest of computing. Onboarding is always the hard part. How many people get started just fine with the language and then can't figure out how to compile and link their program? I think you underestimate how needlessly complex and also boring many parts of computing are.
- ethbr0 5y agoIt is. But there's a difference between "more of a tool you're familiar with" and "an entirely new tool," especially for kids who don't have a boss breathing down their neck, and have endless attention distractions a click away.
- Retr0id 5y agoI wouldn't quite call it the top end, more like the middle. I don't see the lack of escape hatch as a weakness. It just gives you a stronger motivation to move on to a "real" language, when the time is right. I don't think you can really wrap adult tools into something nearly as ergonomic as Scratch. Bear in mind that you don't need to be able to read, write, or type, to use scratch (although basic reading ability certainly helps). I am certainly an outlier here, but I enjoy implementing advanced concepts in Scratch, for the challenge of working in such a constrained environment - I suppose in a similar way to how demoscene coders still enjoy working with the C64. For example, I recently implemented X25519 elliptic curve scalar multiplication in scratch[1] (I'm slowly working my way through most of libsodium's cryptographic primitives). It's a turing complete language, so there's really no limit to what you can do with it. As an adult, progamming by dragging blocks around feels like wading through treacle, so I wrote some codegen tools in python to speed things up. [1] https://scratch.mit.edu/projects/656881761 https://scratch.mit.edu/projects/656881761
- ethbr0 5y agoI can't speak to Scratch, but have been using a variety of low code tools over the years, both kid and not. To enunciate my issue more clearly, I'd phrase it more as "Turing efficiency." I.e. "How cleanly and concisely can I implement an arbitrary advanced concept in a language/tool?" If you have to construct a Rube Goldberg machine from the primitives afforded... that's interesting (in an Incredible Machine kind of way) but probably not ideally educating. I certainly wouldn't want to have to support similarly architected code in production! ;) And I think it isn't always clear to kids that "clever hacks" picked up over years of experimenting aren't the same as "good code" in more powerful languages. By that point, some of "well, that's what coding is" has been internalized.