What you're saying is pretty accurate and I agree. But the problems you enumerate are ironically the best parts about learning JavaScript at the same time.
Failing silently - it's nice to have 'incorrect' programs still do stuff when learning. Who wants to spend hours tracking problems they cannot even comprehend?
Figuring out the DOM - tricky indeed. But it's at least superficially familiar to everyone. Browsers have great tools to inspect and play around with it. You have to learn so much more of insert other language to output to the DOM (or other graphical environments).
My advice: Learn underscore. Always refer to Mozilla's docs first (avoid w3schools). Learn ins and outs of Chrome DevTools (or the FF equivalent).
If you end up wanting to choose a different language - either go lower-level (Go, Java, Swift, C-family etc) or higher-level (any LISP pretty much).
As for DOM I agree. DOM provides a rather rich collection of widgets with which to create "interesting" output which with most other languages requires a GUI framework with its own learning curve. The DOM learning process which worked for me was to :
Write a simple page in HTML, then open it in Dev Tools and understand the structure, etc.
Then re-create it using document.createElement(), etc.
I've re-read parts of David Flanagan's "Javascript the Definitive Guide" many times before I became proficient with many essential concepts in JS. I recommend the book (yes in hardcopy) as a valuable adjunct to Mozilla's docs.
Failing silently - it's nice to have 'incorrect' programs still do stuff when learning. Who wants to spend hours tracking problems they cannot even comprehend? Figuring out the DOM - tricky indeed. But it's at least superficially familiar to everyone. Browsers have great tools to inspect and play around with it. You have to learn so much more of insert other language to output to the DOM (or other graphical environments).
My advice: Learn underscore. Always refer to Mozilla's docs first (avoid w3schools). Learn ins and outs of Chrome DevTools (or the FF equivalent).
If you end up wanting to choose a different language - either go lower-level (Go, Java, Swift, C-family etc) or higher-level (any LISP pretty much).