为什么今天的浏览器仅支持JavaScript和某些VBScript?我知道JavaScript很好,而且一切都很好,但是使用其他编程语言是否可以帮助促进不同的开发风格呢?
为什么今天的浏览器仅支持JavaScript和某些VBScript?我知道JavaScript很好,而且一切都很好,但是使用其他编程语言是否可以帮助促进不同的开发风格呢?
Answers:
无需为多种语言添加支持,一种解决方案是对可以由语言实现者使用的通用字节码进行标准化。但是目前尚无此计划(建议这样做)。
语言也可以在Javascript之上实现。JavaScript足够好,可以在其之上实现其他语言。并且已经有很多例子。
<script type="text/cpp" src="test.cpp"></script>
。
JavaScript是事实上的标准,自1996年以来就已经存在。仅仅因为没有竞争而成为标准并不完全公平,但是我没有听到很多关于为什么不包括另一种语言的抱怨。
添加另一种“标准”语言会引发各种有趣的小问题。
考虑一下仅支持javascript的浏览器之间的不一致。现在考虑如果有更多的语言会怎么样。
浏览器必须标准化,以便您开发的内容可在所有浏览器上的任何地方使用。
如果要使用多种语言,则必须确保它们的表现都非常相似。如果您是网络开发人员,并且可以选择某些位置可能不支持的语言,那么这将是另一个麻烦。
Javascript是一种非常灵活的语言,它势在必行,它是功能性的,可以是OOP(遵循原型的方式),并且可以对其进行解释。现在有了像Chrome这样的不错的引擎,它有能力完成一些出色的工作。额外的语言只会使事情回到这里,仅查看VBScript,IE,因此用它编写的任何内容都将绑定到特定的浏览器和平台上,成为噩梦。
供应商喜欢构建笨拙的浏览器插件(Java,Flash,Silverlight等),而不是将它们构建到浏览器中。这可确保跨平台的一致性。
此处有几条回应声称支持多种语言会使Web浏览器的构建者非常讨厌确保它们与所有语言兼容。对我来说,这似乎是不正确的。
例如,Java是定义非常明确的标准。本质上,您所需要做的就是将浏览器DOM公开为Java API,并在Web浏览器中运行Java虚拟机(JVM)。您可以指定脚本代码要么以已编译和签名的JAR文件的形式交付,要么以JavaScript源代码的形式交付。如果浏览器遇到JavaScript,则可以通过专用的解释器(如今天)或通过JVM上的Rhino来运行它。如果遇到jar文件,它将创建一个新的类加载器和安全沙箱,将Java字节码加载到内存中并执行它。这将与现有网页完全向后兼容,并使浏览器可以一键支持在JVM上运行的多种语言。
其他优点:
我相信JavaScript作为Web的标准语言将获得更大的发展。我们看到服务器端JavaScript的兴起。以下是此功能强大的语言在服务器上的一些实现示例:
POW Web服务器SJS - POW Web服务器的服务器端JavaScript,可作为Firefox扩展或XULRunner应用程序运行。SJS与Apache中的PHP扮演着相似的角色,因为它可以连接到数据库并生成客户端内容。
NodeJS-使用基于事件的模型的服务器端JavaScript。它是使用Google的V8 JavaScript Engine构建的。NodeJS被宣传为用于构建可扩展网络程序的工具。“ Hello World” Web服务器只能用6个短行编写!
Jaxer-一个JavaScript服务器,将所有脚本块解释runat="server"
为服务器端JavaScript。整个Web应用程序都可以用JavaScript编写。
Rhino-Java的JavaScript -Mozilla创建了在Java上运行的服务器端JavaScript实现。从本质上讲,这与Querces PHP for Java,Jython,JRuby以及在JVM上运行的其他语言的许多抽象概念类似。Rhino通常用于将JavaScript嵌入Java中,以为最终用户提供脚本工具,但是它也可以用于将客户端代码移至服务器,而无需用另一种语言重写业务逻辑!
JQuery Claypool-使用服务器上JQuery的功能的服务器端JavaScript框架。很酷!它是使用浏览器的EnvJs服务器端JavaScript实现开发的。
EnvJs-基于Rhino的无头浏览器。
这些实现和框架中的许多表明,JavaScript正在成为Web开发中的强大力量,社区领导者已经开始将JavaScript移至服务器。JavaScript是一种功能非常强大的功能编程语言,随着时间的流逝,我觉得我们会看到它的发展。
总而言之,将其他语言移植到浏览器似乎是一个矛盾,相反,我们可以将一种浏览器语言移植到服务器并以更统一的方式弥合这种差距。
人们通过两种方式解决了缺乏内置多样性的问题:使用诸如Flash或Java Applet之类的插件,以及构建使用javascript作为其“机器代码”的层,例如jquery或Google Web Toolkit。如果有一种足够流行的新开发风格,人们将找到一种方法将其引入。
请注意,如果您使用JavaScript制作.net运行时,并且它变得越来越流行,则某些圈子将永远在互联网上诅咒您的名字。