I agree with most of what you said but you're conflating languages and platforms. JavaScript as a language says and does nothing about sandboxing. It's the browser that does that. It doesn't even specify anything about concurrency (up until promises maybe) or the event loop. The event loop is a feature of the host environment. When Netscape put JS on the server they used in CGI mode.
So I wouldn't completely remove the browser from the picture. Had it been Lua or some other simple general purpose programming language that was the language that ran in the browser I'd say it would've been the JavaScript of today.
(I think one other component of this is "worse is better". JavaScript was easy to copy and implement, although not elegant or the best designed language)
So I wouldn't completely remove the browser from the picture. Had it been Lua or some other simple general purpose programming language that was the language that ran in the browser I'd say it would've been the JavaScript of today.
(I think one other component of this is "worse is better". JavaScript was easy to copy and implement, although not elegant or the best designed language)