It'd be glorious if there were a protocol to ship something closer to "machine code" from server directly to browser, but it doesn't exist. JS is the only language one can assume the browser can actually interpret.
Obviously browser support is one fairly big component. (I've long wondered how much of Chrome's ~65% is straight-from-dl.google.com evergreen, but I guess that's just commentary).
Then there's tooling... heh. That'll be its own eternal September just like JS has been I guess.