13

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

4

7 回答 7

12

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

Node.js 让您可以在眨眼之间以主要是 OOP 的方式编写多线程自定义 Web 服务。我想你会看到后端的 Javascript 才刚刚开始运行。

我认为唯一阻碍它的是——正如其他人所说——缺乏一个整齐打包和标准化的(至少对于 Linux 而言)嵌入式解决方案。然后,主要的托管公司需要采用该解决方案,并将其作为其产品的一部分添加,以使其真正起飞恕我直言。如果发生这种情况,我想你会发现它会爆发到后端服务器空间。

自 1998 年以来,Microsoft 通过其ASP产品提供了使用“Javascript”(AKA JScript)对后端系统进行编程的能力。您仍然可以使用 JScript 开发 ASP.NET 应用程序。所以这不是什么新鲜事。我认为它没有广泛用于 ASP 或 ASP.NET 应用程序的原因是因为 VBScript 是“默认”,而 C# 似乎是更有经验的专业人士的首选语言。但是,除了公司政策通常将开发人员限制为使用单一语言进行公司发展外,没有什么能阻止您。JScript 可能不会被公司实体大量使用的一个原因是它“似乎不再被积极开发”。事实上微软从未真正“上市”” JScript 给开发人员。或者至少没有 C# 和 VBScript 那么多。所以我认为这可能阻碍了它。

于 2010-12-15T14:53:24.010 回答
6

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

编辑: 2022 年,我因这个答案而享有盛誉,这激发了我重新审视它。十二年后,当然,JavaScript普遍用于服务器端,尽管在许多情况下它是编译目标而不是被使用。其引擎是Node.js。与TypeScriptPureScript等语言一起,您还可以获得良好的性能和合理的开发人员人体工程学。

于 2010-12-15T14:52:53.373 回答
5

我不是这方面的专家,但 Douglas Crockford 在“Javascript: The Good Parts”中说 JS 在浏览器中流行起来基本上是偶然的,而不是因为优点。

“Javascript 是一种语言,它的坏处不止于此。它在极短的时间内从不存在到全球采用。它在实验室中从未有过可以试用和完善的间隔......当 Java 小程序失败时,Javascript 默认成为“网络语言”。JavaScript 的流行几乎完全独立于它作为一种编程语言的品质。”

不同的浏览器以不同的方式实现它,而且与具有标准解释器的语言相比,很难说什么是正确的。

正如 Crockford 的书所解释的那样,它确实具有很好的特性,并且 node.js 可能证明它非常适合服务器端开发。但到目前为止,在人们有选择的地方,他们大多选择了其他语言。

于 2010-12-15T14:57:15.613 回答
4

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

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

于 2010-12-15T14:52:28.547 回答
2

我会说这只是历史的偶然。Javascript 作为一种客户端语言诞生于 Netscape,但从未过渡过。

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

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

于 2010-12-15T14:54:21.513 回答
1

在服务器上,人们不必使用特定的语言,而且 JavaScript 是如此自由的形式,以至于代码变得非常难以维护。

这就是为什么大多数人选择其他东西的原因。

于 2010-12-15T14:57:35.457 回答
0

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

然而,在服务器端,这通常是一个不同的故事,这就是为什么,我相信,在服务器端占主导地位的语言具有更强的类型和刚性。

还有规模问题。适用于客户端 UI 应用程序的通常较小的代码库的方法并不总是适用于服务器端,服务器端必须处理许多并非客户端真正关心的主要问题。例如性能、打包、可扩展性——这些对服务器代码比对客户端代码更重要(通常),因此人们不选择 JS 进行服务器端工作是可以理解的。

于 2010-12-15T14:55:41.023 回答