3 ms·
I think there's room for both worlds. People have certainly done as you describe - just picking examples from the micro:bit ecosystem that I know well - Microso
by jaustin 6y ago
I think there's room for both worlds. People have certainly done as you describe - just picking examples from the micro:bit ecosystem that I know well - Microsoft MakeCode is an example of something that takes a "block" world and maps to either JavaScript or Python. https://www.microsoft.com/en-us/makecode https://www.microsoft.com/en-us/makecode or as an example http://makecode.microbit.org/ http://makecode.microbit.org/. Edublocks does similar for Python (or specifically MicroPython) https://edublocks.org/ https://edublocks.org/.
When you start working directly with kids watching them use programming environments, though, it's often amazing how quickly things like the details of parallelism, events, sequencing, start having an impact on programs and making simple things feel 'broken'. I can quite imagine that when trying to achieve specific goals in education, the details and semantics of a language can get you into trouble. Sometimes in order to ensure kids don't get frustrated early, it's necessary to pare back some of the complexity until their understanding of computing is developed enough to bring complexity back... (have a look at https://makecode.microbit.org/device/reactive https://makecode.microbit.org/device/reactive as an example of how MakeCode deals with this on the micro:bit).
Another example that comes to mind on this topic is https://stride-lang.net/ https://stride-lang.net/ - this is very Java-derived, but as I understand it form their publications, the changes away from Java were necessary in order to allow some of the graphical/scaffolding features to work well without entering an 'uncanny valley'.
Hopefully some of the MicroBlocks team will also chime in on this though!