I wonder if JS is perhaps a bit too high level and internally complex to be a great first programming language to be taught to people with no CS fundamentals. Fully internalizing front-end development is no trivial task, and teaching JS out-of-context just by itself might not be super helpful, even though it's probably better than jumping straight to Java, which is also quite magical internally.
On the other hand I can see someone making the same argument about a low level language like C. One could claim that without full understanding of assembly, compilers, the ISA, and hardware-level optimizations you don't really gain much insight into computing.
Reminds me of the never ending debate about whether they should teach Java or assembly as first language in a CS curriculum.
There's probably no right answer, you just got to start somewhere and you'll figure things out on the long term. The web is ever more relevant and JS won't go away for a long time.
I have mixed feelings about this. On the one hand, I agree completely, on the other, being a 'first language' has really hindered scheme in the minds of programmers. Many (ridiculously) think of it as a ridiculous teaching language they were forced to learn.
The best first language is one that your friends use, so you can get help from friends. If you're in a community of schemers or smalltalkers, great. Otherwise ...
On the other hand I can see someone making the same argument about a low level language like C. One could claim that without full understanding of assembly, compilers, the ISA, and hardware-level optimizations you don't really gain much insight into computing.
Reminds me of the never ending debate about whether they should teach Java or assembly as first language in a CS curriculum.
There's probably no right answer, you just got to start somewhere and you'll figure things out on the long term. The web is ever more relevant and JS won't go away for a long time.