为什么Javascript(主要)只是浏览器端技术已经超过10年了?

为什么Javascript(主要)只是浏览器端技术已经超过10年了?,javascript,Javascript,最近有很多项目将Javascript推向其他方向:作为通用脚本语言(GLUEScript、Rhino)、扩展语言(QTScript、Adobe Reader、OO宏)、小部件(Yahoo小部件、MS小部件、仪表板),甚至服务器端JS和web框架(CommonJS、Helma、Phobos、V8cgi),这似乎很明显,因为它已经是一种广泛用于web开发的语言 但是等等,一切都是那么新鲜,没有什么是真正成熟的。然而,JS已经存在了将近15年,它与任何其他脚本语言一样强大,被ECMA标准化,并且是we

最近有很多项目将Javascript推向其他方向:作为通用脚本语言(GLUEScript、Rhino)、扩展语言(QTScript、Adobe Reader、OO宏)、小部件(Yahoo小部件、MS小部件、仪表板),甚至服务器端JS和web框架(CommonJS、Helma、Phobos、V8cgi),这似乎很明显,因为它已经是一种广泛用于web开发的语言

但是等等,一切都是那么新鲜,没有什么是真正成熟的。然而,JS已经存在了将近15年,它与任何其他脚本语言一样强大,被ECMA标准化,并且是web开发的必备技术


为什么要花这么多时间才能获得web浏览器以外的其他领域的认可?

道格拉斯·克罗克福德(Douglas Crockford)在帮助人们高效地使用JavaScript方面做了很多工作,他对阻碍JavaScript的因素也有非常清楚的了解。你可以在网站上找到一些要点。另请参见他的系列讲座。

Javascript作为一种用于大型应用程序开发的可行语言的激增并不像Langage本身那么古老。。。至少是最近15年的事了

主要是,由于AJAX和jQuery/mootools/protoypes/scriptaculous等框架的激增,以及浏览器支持在兼容性、性能等方面的改善,它现在很受欢迎并被大量使用

举个例子,它是建立在V8上的(在谷歌制造Chrome之前,V8是不存在的),它的javascript性能条非常高,你可以在上面制作高性能的网络应用程序


因此,在我看来,这是因为人们跳上了AJAX的大潮,使得JavaScript现在突然变得非常棒,并扩展到其他领域。

语言的采用与辅助库和语言本身一样重要。在Javascript的例子中,没有足够的库来完成I/O和其他完全成熟的使用的标准要求。

8年前,我试图简单地了解一下Javascript,看看是否应该了解更多。我没有。为什么?我以为它会在2-3年内死去

但多亏了JQuery和其他JS框架,它在过去几年中赢得了很多声誉


它也是关联的。汽车在水上行驶,飞机在公路上降落吗?JavaScript始终“属于”浏览器,即使您可以将其用于与浏览器无关的内容。

围绕代码重用的语言中存在一些重大缺陷-特别是,所有代码都在单个名称空间中执行,并且不支持导入其他代码。由于必要性,许多有进取心的库作者已经在客户端解决了这个问题,但是当实现选择是一种语言时,这些问题是需要避免的

该语言也没有一个单一的标准实现——Rhino是最突出的,但它不是SpiderMonkey、JavaScriptCore和V8时代最先进的。这对于标准化问题来说应该不是什么大问题,但仍然存在一个问题,即非浏览器JS代码不太可能适用于所有JS引擎,并且很可能针对单个引擎(Node.JS依赖于V8是最突出的例子)

这些问题使得JS库无法在浏览器之外编写,而且由于没有人编写非浏览器JS库,编写非浏览器JS变得更加困难


事情正在发生变化——特别是,该小组已经创建了一个模块规范,允许更好的代码重用,该规范已经在Node中使用,并且正在开发更好的规范来打包JS代码。

JavaScript是否提供了其他语言无法提供的功能,除了成为浏览器内脚本编写的唯一真正选择之外?服务器端JavaScript的概念听起来可能是新的和创新的,但它从一开始就存在,第一个实现是Netscape的LiveWire服务器,包含在1996年发布的Enterprise server 2.0产品中@Laurence Gonsalves,它给了你两样东西:一,它给了你JavaScript语言的特殊特性(如果你喜欢的话);第二,它在服务器和客户机上为您提供了一种通用语言,允许您编写更少的重复代码(从而减少可能出现错误的表面区域),并且如果您同时处理客户机和服务器代码,还可以减少认知上的不一致性。#1:您(或OP)有什么特别的功能吗喜欢JavaScript吗?这里有一个有趣的思想实验:如果你可以选择在服务器上使用JavaScript,或者在所有浏览器上使用其他语言(比如Python或Ruby),你会选择哪一种呢?我并不喜欢JS而不是其他任何语言,但我会选择双方都可用的语言(服务器或客户端)。事实上,我的问题可能是“为什么不使用语言编写浏览器脚本?”。这就像用PHP编写脚本在控制台中运行一样。它是有效的,但是。。。它只是感觉不对劲。自1998年以来,活动服务器页面一直完全支持JavaScript,IIS也一直支持JavaScript。在90年代和00年代初,人们在浏览器中使用Javascript“自行承担风险”,或者用于滚动新闻div等简单的事情,这就是为什么你认为它会消失的原因。但在那个时候,ASP(和Javascript)被许多服务器广泛使用,并且发展迅速。