mBlock vs Arduino IDE

Good question :slight_smile:

I think it is hard for me to say, since I know programming on a decent level now, I did teach both Arduino and LEGO mind storms, for different audiences.

There are different aspects to it:

What is really good about the drag and drop blocks (blockly, scratch, duinoblocks, whatever) is that it is really easy to explore, as a novice in a certain language, When you don't know the words to express yourself, this makes it easier to find words from this limited list of 'blocks'.

Something like a proper autocomplete might also help a lot with this 'problem', still a user might not know what to start typing, but a exploratory user might get faster results this way.

Another thing is the visual aesthetics of the program. This is subjective, but I could imagine that Arduino code, looks way more scary than a sequence of blocks 'blockly'. I'm not saying that we should always design non-scary looking programming environments, but they should not make it look more complex than it is, but also not less.

Microsoft tried to do this (still inline programming, while having suggestions and making it visually different). But for me it feels painful Micro:bit Educational Foundation GitHub - microsoft/TouchDevelop: TouchDevelop is a touch-friendly app creation environment for iPad, iPhone, Android, Windows, Mac, Linux. Our mobile-friendly editor makes coding fun, even on your phone or tablet! and the development will be stoped by the end of this year

Besides all these practicalities ask yourself the question why, why do they learn 'programming/STEAM' is it really to learn c++ (than definitely use Arduino/VScode/Atom). Is it (mechanical) problem solving, make the (mechanical) problems challenging. Is it learning about how the real world works, let them take apart devices, and hack into them... Is it learning that the world is make-able, let them work on changing the current world. Is it data and privacy, let them collect data in the school (in a visible way) and start conversations around it.

PS: Live debugging (seeing where the program is in the code is also super-nice for education, because this makes the whole debugging more visual and it is easier to explain concepts).

PS: Recently I heard that Buddy++ is popular in China to use as Arduino IDE, which indeed has auto-correct and the list of functions on the left.