Blockly: A JavaScript library for building visual programming editors
developers.google.com
developers.google.com
BlocklySQL: A new block-based editor for SQL - https://news.ycombinator.com/item?id=25517043 - Dec 2020 (38 comments)
Blockly is a library for building visual programming editors - https://news.ycombinator.com/item?id=10763057 - Dec 2015 (40 comments)
Google Blockly is a library for building visual programming editors - https://news.ycombinator.com/item?id=9987641 - Aug 2015 (1 comment)
Google's Blockly Games - https://news.ycombinator.com/item?id=8211031 - Aug 2014 (18 comments)
Google Blockly - a visual programming language - https://news.ycombinator.com/item?id=4050426 - May 2012 (123 comments)
The interface designer in me immediately wants to scream "Fitt's Law!"¹ and move the header with run/select/save from above the output to between the output and the code blocks though.
EDIT: Actually, Fitt's Law tells us not to do that. But scrolling to find those buttons is also wrong. Why not make it a sticky header?
¹ https://www.interaction-design.org/literature/topics/fitts-l...
When designing interfaces for a screen, the edges (assuming that moving the mouse to the edge doesn't cause scrolling) can be considered "infinitely" wide or tall for the purpose of Fitt's law. This is a really old insight:
https://www.joelonsoftware.com/2000/04/27/designing-for-peop...
Pressing your card against the card reader is the same idea: you don't have to be precise with your motor functions, because as soon as you hit the card reader you know you're close enough. So people can be faster with this approach.
(with that in mind, my earlier solution is actually wrong: the buttons shouldn't be put between the output and the code, they should be made sticky)
The first thing that scare those people is the whole "plain text" thing. Spelling errors in programming are not forgiving and that's the first thing learners have trouble with.
One example that comes to mind is science. There often is data to process, and excel can obviously do many things, but I'm really confident that more could be done.
Programming feels like something that is often done by experts, but it really really doesn't have to.
Of course, programmers often disagree that beginners should be given tools to replace experts programmers, but it's still better to have someone who can do the job of a programmer.
This is almost the next stage from learning scratch (https://scratch.mit.edu/)
Blockly is vanilla JS and very easy to extend as needed (I added a better type system, for example), and their new plugin system is super helpful. Its performance isn't quite there, but I have high hopes for the future with the changes I've seen so far. The devs have been wonderful to work with, too.
I had 3 students at a time so I could help them a lot, which some kids definitely needed. But some didn't, and came up with some really interesting algorithms.
It didn't really hit the mark - but working with Blockly was a great experience nonetheless
A few years ago we did a bunch of short free "hour of code" courses with a few different block flavours:
(search for blockly)
I used it to compile->Lua when getting one of my nieces started with the NodeMCU ecosystem.
So I'd say it was her gateway drug for robotics.