I'm bracing for the downvote, but I'm going to say this anyway: are we all taking crazy pills? I understand that we're more or less stuck with JavaScript, but this is nuts. JS has got to be one of the least intuitive, cobbled together languages I've ever had to work with. In what other language are people still having holy wars over how to separate statements? Why the heck would a constructor be a regular function if…
Probably most of the languages in popular use. It's just that the fight is usually directed towards another language.
JS happens to be one of the minority where the standard allows some flexibility and debate about usage.
> mysterious constructs like prototype, new, and apply
They're well-defined, so they're not particularly mysterious if you take the time.
> Are we seriously incapable of doing better?
Really depends on how much effort you're willing to invest in learning JavaScript, instead of trying to write the code you're used to from $OTHER_OO_LANGUAGE. Everyone unwilling to do that is probably never going to be capable of doing better.
This isn't to say there's anything wrong with finding another familiar set of abstractions friendly or personally productive, but personally, I find greenfield JS is pretty fun, flexible, and capable.
Then again, I think the same thing about Perl (which everyone knows is one of the worst languages ever), so YMMV.