为什么JavaScript是浏览器中唯一实现的客户端脚本语言?

为什么浏览器不支持Python脚本来替代Javascript呢? 还是更通用的脚本语言? Javascript是唯一一个在浏览器上实现的吗? 毕竟,script标签确实有支持来指定使用的脚本语言。

(我知道在IE中有VBScript的支持,但是对于所有的意图和目的来说似乎已经过时了。)

那么谷歌正试图用Dart来推动这一趋势。 社区并没有完全接受这个想法。 无论是。

Google build议为Webkit添加多个虚拟机支持,而这个支持并不是很好。

一个特别的评论很好地总结了为什么有一些阻力:

在这种情况下,这个function是向networking公开额外的编程语言,除了当前“最棒的”语言的粉丝之外没有任何真正的好处(不久之前,可能已经走了,大约一年前,已经是ruby,比python之前,我记得我短暂的haskell人气的激增不久,以及Lua已经在很长一段时间的边缘,在这种情况下,它是飞镖 – 谁说是不会有一个完全不同的语言在6个月stream行?),但作为一个代价,它碎片的networking,并增加了大量额外的维护负担 – 维护v8和jsc绑定不是微不足道的,他们是相同的语言。

这里的问题不是“我们可以在webkit中生成多个vms”,而是“我们可以将多种语言暴露给web”,对于前者我显然已经说过了,对于后者我说我们不想要至。

除非我们想把webkit变成每个人都讨厌的引擎,因为它所有的独特“特性”打破了开放的networking,90年代后期的某些浏览器。

CoffeeScript是新兴的客户端脚本语言的另一个例子。 但是,并不是在浏览器中支持另一个虚拟机(就像谷歌正在试图使用Dart一样),它会编译成JavaScript。 还有一些其他的“编译X到JavaScript”也是这样做的。 emscripten是编译LLVM到JavaScript的一个很好的例子。

所以有很多其他的客户端语言。 他们只是使用JavaScript作为中介。 我认为这应该是Dart的做法,虽然他们有一些改进的空间 。

Internet Explorer支持任何Windows脚本引擎 ,因此您可以使其支持任何已实现为一体的语言,或者编写自己的语言。

因为JavaScript是其他所有浏览器都支持的,而浏览器厂商有两个主要优先级:

  1. 确保现有网页的工作(这需要JavaScript)
  2. 让作者在浏览器中做用户可见的事情,在其他浏览器中无法做到这一点(改变编程语言将完全隐藏在用户之外,除非它被打破了)。