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

ana*_*rex 61 javascript browser standards web

为什么浏览器不添加对Python脚本作为Javascript替代的支持?或更通用的脚本语言?有没有理由认为Javascript是跨浏览器实现的唯一一个?毕竟,脚本标记确实支持指定使用的脚本语言.

(我知道IE中有VBScript支持,但它似乎已经过时了.)

vcs*_*nes 42

好吧,谷歌正试图用Dart来逆转这种趋势.社区并没有完全接受这个想法; 无论是.

谷歌建议为Webkit添加多个虚拟机支持,但这种支持并不是很好.

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

在这种情况下,该功能将其他编程语言暴露给网络,除了当前"最棒的"语言的粉丝之外的任何人都没有任何实际好处(不久之前可能是Go,大约一年前,这将曾经是红宝石,比起蟒蛇之前,我记得我在很久以前就已经在哈斯克尔受欢迎了,Lua已经走了很长一段时间,在这种情况下它是Dart - 谁说不会有完全不同的语言在6个月内流行?),但作为一种成本,它会分散网络并增加额外的维护负担 - 只需维护v8和jsc绑定并非易事,而且它们也是同一种语言.

这里的问题不是"我们可以在webkit中制作多个vms"它是"我们可以向网络公开多种语言",对于前者我说明显已经如我们已经做过的那样,后者我说我们不想要至.

除非我们想将webkit变成每个人都讨厌的引擎,因为它打破了开放网络的所有独特"功能",在90年代后期的某些浏览器中.

CoffeeScript是新兴的客户端脚本语言的另一个例子.但是,不是支持浏览器中的其他虚拟机(正如谷歌尝试使用Dart),它会编译为JavaScript.还有其他几个"编译X到JavaScript"也可以这样做.emscripten是将LLVM编译为JavaScript的一个很好的例子.

所以还有很多其他客户语言; 他们只是使用JavaScript作为中间人.我认为这应该是达特所做的,尽管他们还有一些改进空间.

  • 所以支持更多的语言被认为是反对"开放"的网络......具有讽刺意味! (22认同)
  • 浏览器行业(以及Javascript)类似于石油行业!两者都试图通过向他们出售大谎言来躲避人们更美好,更安全的世界.几十年前,我们都不知道有更环保的替代方案.同样如此,设计糟糕的语言仍然是所有主流浏览器唯一可靠支持的语言.这就是人类以如此缓慢的速度取得进步的原因.我们害怕改变! (4认同)
  • “对当前“最棒”语言的粉丝以外的任何人都有任何真正的好处(不久前可能是 Go,一年左右前这可能是 ruby​​,在 Python 之前,我记得我曾短暂地使用过 Haskell ...” - 所以这些语言都是古老的,而 javascript 是最现代的语言!Javascript 是,过去和将来都会是最棒的语言,每个人都会在接下来的 100000 年里愉快地使用它!!!超级!!!我们爱javascript 因为市长浏览器支持它!!! (3认同)
  • 我认为更好的方向是将 javascript 引擎分成两部分:每个语言的语言编译器,javascript、python、dart 或任何将代码转换为 ASM.js(由语言创建者提供)和 ASM.js 解释器的东西,由浏览器提供。这样一来,浏览器的负担就不会显着增加,客户端语言的选择也会更大。 (2认同)
  • 在VM中以类似于Java字节码或CIL的方式构建st并将所有语言(包括JS)编译到其中而不是直接运行JS是不是有意义? (2认同)
  • “对任何人都没有任何真正好处的东西”——除了那些讨厌该死的 Javascript 的人。 (2认同)

Mar*_*rst 6

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