4 ms·
In terms of "should one be able to use it," no, it doesn't matter whether I like it or not. A developer who works on the web needs to know JS. That doesn't mean
by ivraatiems 10y ago
In terms of "should one be able to use it," no, it doesn't matter whether I like it or not. A developer who works on the web needs to know JS. That doesn't mean newbie who doesn't know what they want or anything much about development needs to know it, and certainly not that they need to start with it.
It's not a "purity" point of view, it's an "ease of use for the purpose" point of view. JavaScript does weird things that stymie experienced devs - a newbie hitting them will be completely lost. What's worse, as I said, is that it does these things because it's poorly designed/its design doesn't adequately cover all the edge cases it should, so newbies will learn the wrong information about why things do or don't happen.
The edge cases are not easily avoided because you don't know what a beginner will or won't try to do when working on their own. That means that not only might they do an okay thing in most languages that doesn't work in JS, but that they may also do something BAD that DOES work in JS, because JS is weird. For instance, the way JS handles variable hoisting and scoping is bonkers compared to most other languages - not stuff you can avoid while learning to program, and making it easy to learn the wrong practice as a result.
"80% of everything is crap" is a good thing to know when doing development work, but it isn't helpful when learning. The goal of learning in this context is mastery of the basics of development; 80% won't be good enough.
- dflock 10y ago> you don't know what a beginner will or won't try to do when working on their own This is true regardless of which language you use to start with. Computing in general is so ridiculously over-complex and constructed entirely of layered kludges, that beginners are going to trip and fall into lots of these crevasses no matter what, unfortunately. The first lesson advantage of being able to start the coding immediately (everyone has a browser) is not to be dismissed. If you try to do this in Python - otherwise an excellent choice - you will spend the first ~day of the course installing Python and explaining about command lines, editors and the REPL. This seems trivial to us, but it's a huge hurdle for many first time programmers. The JS version of this is "go to this URL, then right click and select Inspect. Start typing in the console."