服务器端JavaScript会起飞吗?哪种实施最稳定?

时间:2008-08-20 05:33:29

标签: javascript server-side

有没有人看到服务器端JavaScript起飞?那里有几个实现,但这似乎有点延伸(如“我们可以这样做”这种态度)。

我很想知道是否有人真正为服务器端编写JavaScript以及他们迄今为止的体验。

另外,哪种实现通常被认为是最稳定的?

17 个答案:

答案 0 :(得分:12)

我喜欢阅读Googler Steve Yegge的博客,最近我遇到了this article of his,他认为Mozilla Rhino是服务器端JS的一个很好的解决方案。这是一个有点草率的成绩单,你可能更喜欢看video of the talk。它还提供了一些关于为什么他认为服务器端JS首先是一个好主意(或者更确切地说,为什么他认为使用动态语言编写Java脚本是个好主意)的一些见解。我认为他所提出的观点令人信服,所以你可能想看一下。

前一段时间,他还发布了something about dynamic languages in general(他是他们的忠实粉丝),以防万一你想知道为什么要使用JS。

答案 1 :(得分:5)

  

为什么要处理?   你可以用Javascript中的东西   在PHP或ASP.NET中处理它   专门为这项任务而设计的?

也许是因为JavaScript是一种比那两种更强大的编程语言?例如,它具有作为一流数据类型的功能和对闭包的支持。

史蒂夫·叶格(Steve Yegge)曾在博客中发表关于将Ruby on Rails移植到服务器端JavaScript作为Google内部项目(“Rhino on Rails”)的博客。他这样做是因为他喜欢Rails,但谷歌不允许使用Ruby。

答案 2 :(得分:3)

服务器上对JS的支持越来越强大,框架的数量也越来越快。

就在最近,serversideJS小组成立了。他们有很多聪明的人多年来一直在使用服务器端JS(其中一些超过10个)。

  

这个项目的目标是创造   一个标准的库   最终允许Web开发人员   选择任意数量的网络   框架和工具并运行该代码   在最能发挥作用的平台上   他们的应用意义。


对于那些说“你为什么选择JS而不是java或其他任何语言?”的人。 - 你应该阅读Crockford和Re-Introduction的这个forget about the DOM - DOM是超级的,但这不是JS错误,JS不是DOM。

答案 3 :(得分:3)

在Google被Google收购之前,JotSpot使用服务器端JavaScript来查询其数据库并显示您的网页。他们用Rhino来做。 CouchDB使用服务器端JavaScript来创建其数据库的views

从这些示例中可以看出,在服务器上使用JavaScript的一种好方法是使用插件。使用它的一个原因是你可以为人们创建一个非常孤立的沙箱来运行他们的代码。此外,由于JavaScript作为一种语言的工作方式,你可以提供一个专门用于你的用户需要的任务的用户工具去完成。如果您这样做,用户无需学习新语言即可完成任务,快速浏览一下您的API和示例就足以让他们继续前进。将其与许多其他语言进行比较,您可以看到为什么使用服务器端JavaScript来提供插件架构是如此诱人。

一个可以通过像Jaxer这样的项目看到的二级流行解决方案是,进行客户端验证的Web应用程序的一个常见问题是,因为JavaScript在浏览器中很容易被绕过,验证必须在服务器上再次运行。像Jaxer这样的系统允许您编写一些可在服务器和客户端之间重用的验证功能。

答案 4 :(得分:1)

我从来没有听说过这个,但是我觉得使用错误的工具来解决这个问题。由于编程语言只是帮助我们解决某些问题的工具。

如果您可以在PHP或ASP.NET中处理专门为此任务设计的内容,为什么要在Javascript中处理某些内容?

当然你可以用螺丝刀钉入钉子,但是锤子工作得更好,因为它实际上是为它设计的......

所以不,我没有看到它起飞。

答案 5 :(得分:1)

  • XChat可以运行Javascript插件。
  • 我有一些完全用Javascript编写的会计软件。
  • V8有一个有趣的IO库:http://tinyclouds.org/node/
  • CouchDB是一个文档数据库,其中“查询”是用Javascript(TraceMonkey)编写的。

考虑到这一点,我相信,服务器端Javascript 已经起飞。

答案 6 :(得分:1)

  

有没有人看到服务器端的Javascript   起飞?

尝试查看http://www.appjet.com一个创建托管JavaScript应用程序的初创公司,以了解您可以执行的操作。我特别喜欢学习过程,它轻轻地促使用户以最小的开销来构建东西〜http://appjet.com/learn-to-program/lessons/intro

现在看起来使用JavaScript似乎是一个奇怪的想法,但回想起PC何时问世。我所知道的每一个书呆子都在输入新的 Trash-80 Commodore64 Apple] [在游戏中打字或BASIC中的简单应用程序。

今天的年轻黑客基本在哪里?

JavaScript可以为基于Web的服务器端应用程序做,就像BASIC为PC做的那样。

答案 7 :(得分:1)

看起来大多数人都被这个想法推迟了,因为Javascript的各种客户端实现有多么令人不快。不过,我会在通过判断之前检查现有的解决方案,因为请记住,没有特定的SS / JS解决方案与目前在浏览器中使用的JS实现相关联。 Javascript基于ECMAScript,请记住,这个规范目前处于相当成熟的状态。我怀疑支持更新的ECMA规范的SS / JS解决方案不会比使用其他脚本语言来执行任务更麻烦。请记住,Ruby最初也不是作为“网络语言”编写的。

答案 8 :(得分:1)

我个人使用ASP在服务器端JavaScript中创建了一个完整的站点。我发现它非常有趣,因为我能够重用一些好的代码。其中包括:

  • 参数验证
  • 对象建模
  • 对象传输

再加上更高级别的建模工具和代码生成,我对这个项目很开心。

遗憾的是,我没有关于perf的数字,因为它仅在内联网上使用。但是,我必须假设性能与VBScript支持的ASP站点相同。

答案 9 :(得分:1)

嗯,普通的'ASP'支持JavaScript服务器端多年前,每个人都在他们的狗上使用VBShiate代替。但我必须同意其他人:JS似乎不是正确的工具 - 我喜欢做客户端JS:)

答案 10 :(得分:0)

服务器端编程已经存在了比客户端更长的时间,并且已经很多良好的解决方案。

JavaScript已经存活并且变得流行纯粹是因为开发人员在这个问题上几乎没有选择 - 它是唯一可以与DOM交互的语言。它在客户端的唯一竞争来自Flash和Silverlight之类的模式。

这也是为什么JavaScript已经收到如此多的努力来智能化并添加现代功能。如果整个浏览器市场有可能删除JavaScript并将其替换为适合该任务的设计,我相信他们会这样做。目前,Javascript具有奇怪的基于原型的对象,一些简洁的函数式编程功能,有限和古怪的集合以及极少的库。

对于小脚本来说,这很好,但对于编写大型复杂系统来说,这是一种可怕的语言。像Firefox和Gmail这样的东西(部分)写在其中是他们的英雄成就,而不是该语言为实际应用程序开发做好准备的迹象。

答案 11 :(得分:0)

Flash Media Server使用服务器端操作脚本编写脚本,这实际上只是javascript(ECMAScript)。所以,我做了很多。事实上,我的大部分时间都在处理SSAS。

我讨厌它。虽然公平,但其中一堆与我继承的(不那么好的)代码库相比实际语言更为相关。

答案 12 :(得分:0)

我认为服务器端Javascript是保证起飞的。这只是时间问题。

Mozilla,谷歌和Adobe对Javascript有如此多的既得利益,将它从浏览器世界中移除将是一件奇迹。下一个合乎逻辑的步骤是将其移至服务器端。

这是向远离通常包含所有这些

的互联网技术的大杂烩迈出的一步
  • HTML
  • CSS
  • 的Javascript
  • Serverside语言J2EE / ASP / Ruby / Python / PHP
  • SQL

我没有太多关于Javascript服务器框架的当前状态,除了它们大部分都是不完整的。

答案 13 :(得分:0)

我认为服务器端js将在未来的应用程序中提供相当大的优势。为什么?可以离线的Web应用程序,客户端数据库存储,谷歌等等...

遵循这一趋势,越来越多的逻辑正在进入客户端。使用适用于客户端的ORM,并在服务器端使用另一个(无论是PHP / Ruby /等),用两种不同的语言编写两次同步逻辑,用两种不同的语言编写两次业务逻辑?

如何在客户端和服务器端使用js并编写一次代码?

令人信服?

答案 14 :(得分:0)

Personaly我一直在开发和使用我自己的JavaScript框架大约4年 现在

关于服务器端JS的好处是在ASP Classic中实现了你不需要的东西 除了我还使用我的javascript(客户端)之外,还安装了任何其他插件或软件 我的服务器上的框架,允许我享受相同的功能和证明 在客户端和服务器端环境中执行我的功能。

不仅用于数据验证,还可以说HTML或CSS动态构造 可以在客户端或服务器端完成,至少可以使用我的框架。

到目前为止,它的工作速度很快,除了极好的可用性之外,我没有什么可抱怨或后悔的 和我在过去4年中一直享受的可扩展性,直到这一点 我正在将我的ASP Classic代码更改为javascript代码。

您可以在http://www.laferia.com.do

的实践中看到它

答案 15 :(得分:0)

Node.js已经起飞并证明服务器端JavaScript仍然存在=)

答案 16 :(得分:-1)

我无法看到大多数开发人员克服了他们对客户端JavaScript编程的厌恶。在选择JavaScript之前,我宁愿去Java服务器端。