也许我只是没有意识到竞争对手,但似乎在浏览器和DOM中的客户端脚本中,Javascript就是这样。我知道有VBScript,但它实际上甚至不和JS在同一个球场(对于初学者来说甚至不是跨平台)。
我只是好奇这是怎么回事。当然,人们普遍希望有一种新语言来取代Javascript:从头开始构建Javascript已经被弯曲和塑造的所有东西(看看对JS库的依赖)。
答案 0 :(得分:31)
动量。 JavaScript已经存在了大约15年左右,浏览器制造商已经工作了15年左右,以使其在浏览器中运行。
如果竞争对手出现,它需要真正带来新的东西,以说服每个人a)采用它,b)生活中锁定IE7,Firefox 3.0,Chrome等旧浏览器的所有用户1.0等和c)找到所有现有库的替代品,如jQuery,prototype,extJS等。
简而言之:我们不需要另一个标准,让我们改进JavaScript,建立在已经存在的丰富基础上,而不是从石器时代开始。
答案 1 :(得分:9)
有!我想到的是Flash,ActiveX和Java ......但这些都有它们的缺点。主要是安全性和与浏览器/ DOM的集成。
Flash和Java生活在他们自己的小世界中,通过设计(并解决安全问题)。他们不能改变他们周围的HTML。 ActiveX可以访问DOM,也可以访问计算机上的所有其他内容。
Javascript似乎在灵活性和安全性之间找到了很好的平衡,它可以轻松地交互和改变页面HTML / CSS,做“安全”的网络,有一个像样的标准库(它有JSON,XmlHttpRequest的网络之类的东西) ,DOM操作等)。最重要的是,它可以在所有平台上基本上所有模糊的现代浏览器中以一致的方式提供(与CSS相比)
Javascript存在问题,但没有什么大问题。最大的是性能..在digg上加载评论页面并观察你的CPU使用情况。很可能是100%的CPU核心。有一些项目可以改善这一点,例如SquirrelFish,TraceMonkey和其他奇怪的名字......但是表现足以做一些非常令人印象深刻的事情(例如Google电子表格)。
基本上,Javascript很棒,它的缺点并不像其他竞争对手那么大..
答案 2 :(得分:7)
JavaScript赢了,因为它是由Netscape在市场份额超过90%时推出的。 IE和其他浏览器别无选择,只能支持它。
如果要引入新语言,则必须通过所有主要浏览器供应商之间的协议,或者在单个浏览器具有足够市场份额的时间段内推动它。
几年前,当IE拥有极大的市场份额(在Firefox和Safari兴起之前)时,微软可能已经取消了它,但他们选择(出于战略原因)让浏览器停滞不前。今天,一种新语言需要至少在Mozilla,IE和Safari之间达成协议以获得牵引力,我认为这种可能性很小。浏览器供应商已经在JavaScript的优化,兼容性测试等方面投入了大量资源 - 他们为什么要用一种全新的语言从头开始 - 并且必须在未来几十年内同时支持两种语言?成本大大超过任何好处。
无论如何,相信从头开始设计的新语言可能比JavaScript明显更好是非常不现实的。
答案 3 :(得分:6)
告诉我另一种不依赖于图书馆的语言?
C,C ++,C#,VBs ......都依赖于库。唯一的区别是它们通常带有一套标准的库。
我们真的想要的是一套标准的库吗?我们目前得到的是一系列库集(JQuery,原型,extjs,mootools等)。这是一件好事,因为我们开发人员可以选择一个适合我们需求的产品。此外,可以包含和演化这些库,而无需更改客户端组件。
我可以认为Javascript中没有引人注目的语言功能。通过引人注目,我的意思是如此惊人地重要,以至于我愿意疏远那些不支持它的浏览器。
答案 4 :(得分:4)
如果一个好的竞争对手在1999年之前到达(ECMAScript 3),那么这两者之间可能会有一个联系。
答案 5 :(得分:3)
客户端脚本还有其他语言,但AFAIK,没有集成到浏览器中。
Flash和Silverlight都有自己的语言。 Flash有ActionScript,而Silverlight在DLR下有许多工作,包括Python和Ruby。
关于为什么的第二点,更具体地说,你提到依赖JS库作为语言的缺陷;库很流行,不是因为语言坏了,而是因为标准API被破坏了。这些伟大的文库的存在建立在语言的力量之上。
JavaScript没有什么特别的错误,它有一些功能,直到最近才具有深奥或学术性。例如,第一类函数。
此外,无处不在/大规模现有的运行时部署是一个非常引人注目的功能。 ;)
答案 6 :(得分:3)
我建议您查看Douglas Crockford’s presentation about “The JavaScript Programming Language”以了解JavaScript的历史记录。
答案 7 :(得分:3)
我认为Javascript(ECMAScript)及其C语法是如此受欢迎,因为C的一些原因是:
创建一种新语言将提供许多当前“内置”库,这种语言总是存在风险,因为它开始限制语言的未来适用性并使学习基础语言更加困难。
对于客户端浏览器语言来说,这会更成问题,因为语言设计者不可能知道将来如何使用该语言。
我认为Javascript语言目前的角色很好,可以作为链接许多其他客户端sode技术的“粘合剂”。
没有其他竞争对手,因为虽然Javascript并不完美,但它可以胜任。
答案 8 :(得分:1)
我想因为浏览器实现它的需求量很大。
毕竟,它是处理和运行JavaScript的浏览器,你必须拥有大量使用该语言的网站才能使浏览器对实现它感兴趣。如果首先没有浏览器支持,那么没有人会使用它。
答案 9 :(得分:1)
我要说这是因为客户端Web开发仍然是一个非常年轻的编程分支。 如果你现在看它它已经变得更加普遍,因为我们转向更快的“intertubes”:)并且我们不再使用调制解调器了。
基于网站开发的基于网站开发的问题是,它不是由开发人员决定他将使用哪个平台,而是取决于浏览器制造商。 他们变慢了。VB脚本的消亡在我看来是VB-innes。太多不必要的东西了。 至于javascript它会成熟,但它是一个开始。
答案 10 :(得分:1)
浏览器支持。如果它不是MS技术,它很可能不会进入IE。如果它不在IE中,则没有人可以使用它。如果它是MS技术,那么很可能只有IE才有权使用它,因为它将是闭源和专有的。如果只有IE支持它,那么只有一些开发人员会使用它。
要挑战JavaScript,它必须在所有主要Web浏览器中轻松且更一致地工作。没有浏览器支持,任何新的客户端Web技术都注定会失败。
答案 11 :(得分:0)
我认为它与标准化有关,因为在最后一次浏览器战争(即v.netscape)中有两个,Netscape的ECMA(如果你知道这是JavaScript的真实名称,那么+1 Geek指向你)微软的JScript,显然ECMA(JavaScript)赢了,并成为了事实上的标准。
现在,我们正在进行另一场正在进行的浏览器战争,并且每个主要竞争对手3(如果算上Chrome 12%FFS)中的每一个都完全(有一些边缘情况)支持JavaScript。
答案 12 :(得分:0)
我的猜测是它在任何新的用户代理项目中无处不在并且易于集成。它内置于几乎所有浏览器中,因此您无需下载/安装/配置任何内容即可运行。一旦你看到桌面上的用户代理(wii,iphone,windows mobile,n95等),任何竞争对手的可用性都会很快干掉 - 所以你编写了html和javascript代码,因为它可以在大多数情况下运行。
答案 13 :(得分:0)
我同意迈克尔的观点,我们应该改进Javascript,不要担心竞争对手,因为不会有任何竞争对手,事实上甚至Javascript 2.0似乎都没有达到现实。
由于Javascript是一种模糊的语言,我们能够创建库(jQuery)甚至抽象(Objective-J),而不用担心Javascript的核心问题。
答案 14 :(得分:0)
经过这么多年,我们甚至没有在所有浏览器中实现相同的CSS,同样适用于JavaScript,IE有一个模型,其余浏览器有另一个模型(我的意思是像事件处理程序和附加事件)。 / p>
如果新的竞争对手来了,它没有机会,也没有像css和javascript那么多的时间。