为什么是JavaScript而不是标准的浏览器虚拟机?

2022-08-30 02:07:58

通过浏览器中托管的标准化虚拟机来支持一组语言(Java,Python,Ruby等),而不是要求使用专用语言 - 实际上是一种专用范式 - 仅用于客户端脚本编写,这难道没有意义吗?

为了澄清这个建议,网页将包含字节码,而不是像JavaScript这样的任何高级语言。

我理解一个务实的现实,即由于进化原因,JavaScript只是我们现在必须使用的东西,但我更多地考虑的是长期。关于向后兼容性,没有理由不能在一段时间内同时支持内联JavaScript,当然JavaScript可能是浏览器虚拟机支持的语言之一。


答案 1

是的。当然,如果我们有一台时间机器,回过头来确保许多Javascript功能的设计方式不同将是一个主要的消遣(这,并确保设计IE的CSS引擎的人永远不会进入IT)。但这不会发生,我们现在被困在它上面。

我怀疑,随着时间的推移,它将成为Web的“机器语言”,其他设计更好的语言和API可以编译下来(并迎合不同的运行时引擎弱点)。

然而,我不认为这些“设计更好的语言”中的任何一种都是Java,Python或Ruby。尽管Javascript能够在其他地方使用,但它是一种Web应用程序脚本语言。鉴于该用例,我们可以比这些语言中的任何一种做得更好。


答案 2

我认为JavaScript是一门很好的语言,但我希望在开发客户端Web应用程序时有一个选择。出于遗留原因,我们坚持使用JavaScript,但是有一些项目和想法正在寻找改变这种情况:

  1. Google Native Client:在浏览器中运行本机代码的技术。
  2. Emscripten: LLVM bytecode compiler to javascript.允许 LLVM 语言在浏览器中运行。
  3. 想法:浏览器中的.NET CLI,由Mono的创建者:http://tirania.org/blog/archive/2010/May-03.html

我认为我们将在很长一段时间内拥有JavaScript,但这迟早会改变。有很多开发人员愿意在浏览器中使用其他语言。