I wouldn’t say there’s a huge difference between say Python and JS. Python as a language is better designed but still prone to runtime errors (i.e., it doesn’t address the fundamental problem).
JS is very flexible so it gives you a lot of rope to hang yourself with. Hence the linters and hence FlowType and TypeScript. (Disclaimer: I’m using TypeScript on my projects.)
These days, the pendulum has swung from waterfall to agile and from big design to quick prototyping — and having a super flexible language with huge ecosystem is good for doing that. Of course you’ll have to pay the price later on in maintenance and I worry not everyone realises that.
BTW, JavaScript may be a poor language but it’s developing (”fixing itself”) at admirably fast pace. Also, the core of the language is IMHO a little gem (higher-order function, closures, prototypal inheritance — all pretty sweet). The biggest problem is the legacy burden (hi Microsoft!) which is not really a fault of the language per se.
