为什么服务器端Javascript没有被广泛使用?

时间:2010-12-15 14:48:00

标签: javascript backend serverside-javascript

我们知道JavaScript是前端最流行和最广泛使用的语言之一。我想它在后端没有被广泛使用?

7 个答案:

答案 0 :(得分:10)

由于谷歌的V8引擎,它的使用越来越广泛。看看Node.js。我认为糟糕的表现限制了它的有效性。

Node.js允许您在眨眼间以大多数OOP方式编写多线程自定义Web服务。我想你会看到后端的Javascript刚刚开始运行。

我认为唯一阻止它的是 - 正如其他人所说的那样 - 缺乏整齐打包和标准化(至少对于Linux)插入式解决方案。然后,这个解决方案需要由主要托管公司接收,并作为其产品的一部分添加,以便真正起飞恕我直言。如果发生这种情况,那么我认为你会发现它会爆炸到后端服务器领域。

Microsoft提供了使用“Javascript”(AKA JScript)编写后端系统的能力,自1998年开始提供ASP。您仍然可以使用JScript开发ASP.NET应用程序。所以这不是什么新鲜事。我认为它没有广泛用于ASP或ASP.NET应用程序的原因是因为VBScript是“默认”而C#似乎是更有经验的专业人士的首选语言。但除了公司政策之外,没有什么可以阻止你,因为公司政策通常会限制开发人员使用单一语言进公司实体可能不会使用JScript的一个原因是它"appears no longer to be actively developed."事实上,微软从未真正“向市场推销”JScript给开发人员。或者至少不像C#& VBScript中。所以我认为这可能会阻止它。

答案 1 :(得分:5)

JavaScript很受欢迎,并且在前端广泛使用,因为它具有临界质量,不一定是因为它是一种优秀的语言。没有人决定为客户端代码编写JavaScript;他们只是必须,因为每个浏览器都支持它。在后端,其他语言(Java,PHP,Python,Ruby,...)提供了JavaScript无法提供的优势。

答案 2 :(得分:5)

我不是这方面的专家,但道格拉斯·克罗克福德在“Javascript:The Good Parts”中说,JS本质上是在浏览器中流行起来,而不是因为功绩。

  

“Javascript是一种语言更多   比它的不良部分份额。它去   从不存在到全球采用   在一段惊人的短时间内。   它从未在实验室中间隔过   何时可以试用   抛光...当Java小程序失败时,   Javascript成为了'的语言   Web'默认情况下。使用JavasScript的   人气几乎完全   独立于它的品质   编程语言。“

不同的浏览器以不同的方式实现它,并且更难说具有标准解释器的语言的正确性。

它确实具有很好的功能,正如Crockford的书所解释的那样,node.js可能证明它对于服务器端开发很有用。但到目前为止,在人们有选择的地方,他们大多选择其他语言。

答案 3 :(得分:3)

简短回答:因为有更好的选择。

答案很长:因为被完全解释(并且通常不太好 - 例如IE6),除了提供环境之外没有提供标准的I / O机制,语法松散会导致困难验证代码,许多人发现基于原型的OO比基于类的OO更难处理。

答案 4 :(得分:2)

我说这只是历史事故。 Javascript作为客户端语言诞生于Netscape,从未进行过转换。

将它与当今着名的服务器端网络语言进行比较,我认为最明显的区别是电池不包含在Javascript中。没有标准库。

将它与Python,PHP,ruby等进行比较,它们都具有出色的标准库,使Web编程更加可口。

答案 5 :(得分:1)

在服务器上,人们没有义务使用特定的语言,JavaScript是如此自由,以至于代码变得非常难以维护。

这就是为什么最大比例的人选择别的东西。

答案 6 :(得分:0)

我认为答案可能是对客户端有利的并不总是对服务器端有利。例如,Javascript(一般来说ECMAScript也是ActionScript)是一种非常宽松和宽容的语言,它可以让你摆脱很多东西。在客户端,这通常不仅可以接受,而且更可取。您经常希望您的UI尽可能顺畅和宽容,以改善用户体验。

然而,在服务器端,它通常是一个不同的故事,这就是为什么,我相信,主导那一方的语言更强烈的类型和僵化。

还存在规模问题。对于客户端UI应用程序通常较小的代码库而言,适用的并不总是适用于服务器端,而服务器端必须处理许多在客户端并不是主要问题的问题。例如性能,打包,可伸缩性 - 这些对于服务器代码而言比对客户端代码(通常)更重要,因此人们不会选择JS进行服务器端工作是可以理解的。