I've been learning javascript recently and, considering its reputation, it doesn't seem all that bad?

I mean, it's much more ridiculous than you might think from https://www.destroyallsoftware.com/talks/wat but, compared to other things I've used professionally (Verilog, microcode, C++, Scala, etc.), it doesn't seem bad with respect to the combination of safety, sharp edges, and performance.

Microcode has fundamentally decent reasons for having a lot of sharp edges, so I'll give that a pass, but,

Wat

with respect to sharp edges, I think js is at least vaguely comparable to C++, Verilog, and Scala and I'd actually rate js as much nicer than Verilog and moderately nicer than C++.

In terms of performance predictability, js seems to be in the same league as Scala (actually better IMO) and one big win is that people's mental models seem closer to reality, e.g., I've seen a lot of Scala people say that Scala has Java-like performance if you avoid immutable data structures, which is very wrong.

@danluu I think most of the perception around JS doesn't stem from the language/runtime itself, but the code it tends to create. Like Wat showed, it has some absolutely head-scratching behaviors which lead to code that's really hard to pick apart after writing, especially if you didn't write it. It's kind of the same reputational problem that PHP or Perl has/had.