【问题标题】:Netscape Enterprise Server and Server-Side JavaScript (SSJS) vs Node.jsNetscape Enterprise Server 和服务器端 JavaScript (SSJS) 与 Node.js
【发布时间】:2013-08-23 10:34:09
【问题描述】:

服务器端 JavaScript (SSJS) 的 Netscape Enterprise Server 实现与 node.js 实现之间的主要区别是什么?

为什么 Netscape 的实现没有引起注意,而 node.js 似乎更受欢迎?

【问题讨论】:

    标签: javascript node.js serverside-javascript netscape ssjs


    【解决方案1】:

    主要区别在于 Javascript 在过去 15 多年的演变。 Node.js 使用 V8 Javascript 引擎,该引擎将更加适合现代计算机。

    Wikipedia 很好地列出了各种服务器端 JS 解决方案之间的差异。

    这是 Netscape Enterprise Server 的 list of features - 提供了一个很好的想法,让您了解如何使现代 SSJS 解决方案变得更好。

    为什么没有引起注意?实际上,客户端 JS 直到最近才开始成为 Web 开发的标准,所以当它的最初目的甚至没有真正被广泛采用时,任何人都不太可能考虑将它用于服务器端开发。我说被广泛采用是因为以前总是很难为所有浏览器提供 JavaScript 解决方案。

    【讨论】:

    • 谢谢,但我在 Wikipedia 的列表中没有看到 Netscape。
    • @PHPst 它没有 Netscape true,因为它不再处于活动状态。我将添加一些指向 Netscape Enterprise Server 的链接
    【解决方案2】:

    早在 1999/2000 年,我曾在一家使用 Netscape Server 和 SSJS 的公司工作。我不知道当时它有多受欢迎,但从第一手经验来看,我可以告诉你几乎所有关于它的东西都很糟糕:

    • 调试是一个巨大的痛苦(对源文件的任何更改,甚至是静态文件,都需要完全重新加载应用程序,这不是一个快速的操作)
    • 一个简单的错误(例如未捕获的异常)通常会导致灾难性的服务器故障。有点有趣的是,这是 NodeJS 的默认行为,尽管使用 Node 解决这个问题要容易得多。
    • 尽管语法是 JavaScript,但它未能实现现代 JavaScript 的一个关键优势:运行时解释。带有 Netscape Server 的服务器端 JS 需要在部署之前进行编译,因此需要非常缓慢的开发过程。
    • 它遵循多线程执行模型(而不是几乎总是基于事件循环的现代 JS VM)
    • 可能它最大的弱点是缺乏异步编程支持。所有 IO 操作都是阻塞的,因此它需要一个重量级的多线程模型来支持多个客户端。执行模型更类似于 J2EE 容器,而不是现代事件驱动的 JavaScript VM(即:V8)。在我看来,这是 NodeJS 做对的第一件事:异步理念深深植根于 NodeJS 开发工作流程中,它是其轻量级、事件驱动、极其高效的并发模型的关键。

    仅供参考,这里是 1.2 版中的 SSJS reference guide 的链接。从第 21 页开始,您可以看到文件对象、数据库查询等的所有标准函数和同步 API...

    此后不久,我的公司最终改用 ColdFusion,并且再也没有回头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      • 2011-04-25
      • 2016-02-24
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多