Back in the day, when I created our intro class where we use Scheme, NetLogo and then later Python, I'd get similar pushback but then it was "why not Java?", "why not C?", or "whu not C++?"
Let's dive in.
Ubiquity and availability:
You can tweak websites almost live, use the HTML5 canvas pretty interactively and mode
- It's mainstream
- It's quick to get up and running
This is all true, but there are also downsides.
I also prefer, where possible, to have kids learn locally so that they can learn something about the underlying operating system even if only at a user level.
A problem relating to the lack of tooling is the fact that a JS program can fail to run and not give you any meaningful feedback at all - this is a problem for a beginner.
which is pretty conventional, but then there's also
===. We have
potentially confusing scoping issues and also some other real
console.log(53-3); // 50 console.log(53-'3'); // 50 console.log('53'-3); // 50 console.log('53'-'3'); //50 console.log(53+3); // 56 console.log(53+'3'); // '533' console.log('53'+3); // '533 console.log('53'+'3'); // '533'
For more, check out the this video. Start watching at about 1:20 - it's a riot.
All of this weirdness actually makes sense - just not to a beginner.