5

我正在寻找用更好的东西替换 PHP(每个人似乎都说 PHP 是邪恶的,对吗?),并考虑服务器端 JavaScript。

node.js 似乎很受欢迎,但恐怕我会因为异步的东西而发疯。是否可以在 node 下编写普通(同步)代码?

我的愿望清单:Web 和命令行脚本,良好的性能(在 The Computer Language
Benchmarks Game
上,V8 似乎比 PHP 快一个数量级),最好由某些公司或社区开发,这样它就不会有一天被抛弃, 具有不错的模块库的用户社区。

我不考虑基于 Rhino 的各种框架,因为 Rhino 在 Java 中运行,而且我不熟悉 Java,知道它的内存占用,并且将 javascript 编译为 java 的整个想法对我来说毫无意义。

花了一些时间在谷歌上搜索,发现了许多项目:Myna、Meteor、GromJS、APE、GLUEscript、v8cgi、silkjs、wakanda、GPSEE、sorejs、ejscript、Persevere、PhantomJS。

有人对这些有任何经验吗?欢迎任何建议。

4

5 回答 5

6

好吧,如果您问我,Node.JS 就是要走的路。您可以编写同步代码,但只能在命令行脚本中执行。在编写 Web 服务器时,您必须走异步路由,否则它将无法执行,因为JavaScript 是单线程的,并且一切都停止了。

Node.js 之所以如此之快,是因为异步 IO。

你会习惯回调和事件,一段时间后你不想回去。

Node.js 是一个基于 Chrome 的 JavaScript 运行时构建的平台,用于轻松构建快速、可扩展的网络应用程序。Node.js 使用事件驱动的非阻塞 I/O 模型,使其轻量且高效,非常适合跨分布式设备运行的数据密集型实时应用程序。

于 2012-07-14T21:45:05.230 回答
5

流星。建立在 Node.js 之上并且发展非常迅速。

在 Meteor 中,您的服务器代码在每个请求中运行在一个线程中,而不是以 Node.js 典型的异步回调样式。我们发现线性执行模型更适合 Meteor 应用程序中的典型服务器代码。

更新一年后 -为什么流星

于 2013-03-12T01:17:49.260 回答
4

你看过服务器端 JavaScript 解决方案的比较吗?

Node.js很流行。至于 php 速度,你看过HipHop吗?用 javascript 重写代码可能不会比 php 带来太多的性能提升。

于 2012-07-14T21:48:44.257 回答
4

Nodejs 在许多方面都是非常好的选择。

但是您说您担心它的异步性质。

对此有两点。

  1. 你永远不需要担心异步,并且可以继续像 PHP 一样从上到下编写你的应用程序。那是如果您没有执行“阻塞 IO”。

  2. 如果您正在执行“阻塞 IO”,例如读取数据库或访问文件系统,那么您将需要处理异步。幸运的是,有一些很好的方法可以做到这一点,而无需过多地改变你的编码实践。

于 2012-07-15T02:42:24.777 回答
3

感谢您提供您找到的“众多项目”列表。我们目前正在使用自 1996 年以来提供服务器端 JavaScript 实现的 Microsoft ASP 3.0(“经典 ASP”,与 IIS 一起提供)——它快速、成熟并且由于 COM 技术相当可扩展。如果您不固定开源,那么值得一看。对于我们的开源策略,我们将仔细研究 SilkJS。

于 2012-07-27T07:40:23.490 回答