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

为什么javascript是浏览器中实现的唯一客户端脚本语言?,javascript,browser,web,standards,Javascript,Browser,Web,Standards,为什么浏览器不添加对Python脚本的支持作为Javascript的替代?还是更通用的脚本语言?Javascript是唯一跨浏览器实现的浏览器,这有什么原因吗?毕竟,script标记确实支持指定所使用的脚本语言 (我知道IE中有VBScript支持,但它似乎已经过时了。)因为其他浏览器都支持JavaScript,而浏览器供应商有两个主要优先事项: 确保现有网页正常工作(需要JavaScript) 让作者在他们的浏览器中做他们在其他浏览器中做不到的用户可见的事情(改变编程语言将对用户完全隐藏,除非

为什么浏览器不添加对Python脚本的支持作为Javascript的替代?还是更通用的脚本语言?Javascript是唯一跨浏览器实现的浏览器,这有什么原因吗?毕竟,script标记确实支持指定所使用的脚本语言


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

因为其他浏览器都支持JavaScript,而浏览器供应商有两个主要优先事项:

  • 确保现有网页正常工作(需要JavaScript)
  • 让作者在他们的浏览器中做他们在其他浏览器中做不到的用户可见的事情(改变编程语言将对用户完全隐藏,除非它坏了)

  • 好吧,谷歌正试图与这一趋势抗衡。社区还没有完全接受这个想法;要么

    谷歌的表现并不好

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


    在本例中,该功能向web公开了其他编程语言,这对当前“最棒”语言的粉丝以外的任何人都没有任何实际好处(不太久以前,这可能是Go,一年左右以前,这可能是ruby,在python之前,我记得我在haskell的流行度上也有过短暂的激增。不久前,Lua已经处于边缘,在这种情况下,它是Dart——谁说在6个月内不会有一种完全不同的语言流行?),但作为一项成本,它会使web变得支离破碎,并增加大量额外的维护负担——仅维护v8和jsc绑定并不简单,而且它们是针对同一种语言的

    这里的问题不是“我们可以让多个虚拟机在webkit中生存”而是“我们可以将多种语言暴露到web上吗”,对于前者,我说得很明显,就像我们已经做的那样,对于后者,我说我们不想这样做

    除非我们想把webkit变成一个人人都讨厌的引擎,因为它的所有独特的“功能”打破了开放的网络,否则在90年代末的某些浏览器中

    CoffeeScript是一种新兴的客户端脚本语言的另一个例子。然而,它不支持浏览器中的另一个虚拟机(如Google尝试使用Dart),而是编译成JavaScript。还有其他几种“将X编译成JavaScript”也可以做到这一点。这是将LLVM编译成JavaScript的一个很好的例子


    所以还有很多其他的客户端语言;它们都使用JavaScript作为中间语言。不过,我认为Dart也应该这样做。

    Internet Explorer支持any,所以您可以让它支持任何作为一种语言实现的语言,或者编写自己的语言。

    这是一个类似的问题,请参见:@TomaszNurkiewicz我见过Dart。但是问题出现了——浏览器甚至不支持现有的流行脚本语言,为什么还要为此发明一种全新的脚本语言。IE仍然支持vbscript。我怀疑它是否已经被广泛使用了——可能是在一些公司内部网上。只是未来的一个提示:它已经不存在了,或者至少现在已经被允许了带朋友回家:这可能应该重新开放,因为它符合社区定义主题的范围要求:“程序员常用的软件工具”并且是“一个软件开发特有的实用、可回答的问题”。这不是一个论点,而是一个逻辑谬误。基本上,你是说“X,因为X”。简单的循环推理,因此无效。而且,这是一个经典的“吸引大多数人”谬论。说到逻辑,你的评论是正确的,但说到现实和市场,你的评论是错误的。如果你觉得这听起来合乎逻辑和合理,为什么不支持而不是承认市场是不合逻辑的,现实是糟糕的,也许他们会这样做,但我希望我们能够解决问题。所以支持更多的语言被认为是正确的反对“开放”网络……讽刺的是!“除了当前“最棒”语言的粉丝之外,任何人都能从中获得任何真正的好处(不久前,这可能已经过时了,大约一年前,这可能是ruby,在python之前,我记得我在haskell中短暂的激增……”-这些语言都很古老,javascript是最现代的语言!!!javascript现在、过去和将来都是最棒的语言,在未来的10万年里,每个人都会乐于使用!!!超级!!!我们喜欢javascript,因为主流浏览器支持它!!!我认为更好的方向是将javascript引擎分为两部分:每种语言的语言编译器,javascript、python、dart或任何能将代码转换为ASM.js(由语言创建者提供)的语言编译器,以及浏览器提供的ASM.js解释器。这样,浏览器的负担不会明显增加,客户端语言的选择也会增加。浏览器行业(因此也包括Javascript)就像石油工业一样!两者都试图通过向人们兜售谎言来掩盖一个更美好、更安全的世界。我们都沉迷于石油,却不知道几十年前就有了更环保的替代品。同样,设计拙劣的语言仍然是所有主要浏览器唯一可靠支持的语言。这就是人类取得进步的原因以如此缓慢的速度。我们害怕改变!为s.t.构建类似于Java字节码或CIL的VM,并将所有语言(包括JS)编译到其中,而不是直接运行JS,这难道没有意义吗?