Node.js与Python

我正在重写我的服务器,并决定使用Node.js和Python。

我更喜欢Javascript(因为我非常精通),但是这篇文章让我停下来。 我很好奇,如果任何人有任何问题,而且我很好奇,如果有任何平台相关的美德之一。

具体来说,他们中的任何一个都不支持/限制/ excel-at

  • mySQL调用
  • imageMajik交互
  • 调用系统进行文件系统操作
  • 通过WGET / Curl调用其他任何东西
  • 你可以想到正常的CGI进程必须处理。

我不想开始讨论PHP或.Net的优点,我已经做出了一个明确的决定,转移到Python或Node.js,并完全在Node.js上解决,直到我读了上面的文章,所以实际上,我只是在寻找人们对这两种工具所具有的特定问题/美德。

提前致谢。

这里有两个问题:

  1. 语言的select。 如果你更喜欢python或者javascript,你需要自己决定,哪个提供你想要的库。 我不能帮你做出这个决定。
  2. IO模型的select。

不同于文章中的build议,单线程非阻塞IO模型原则上并不坏。 就我个人而言,我非常喜欢这个模型,因为它消除了multithreading的复杂性,同时仍然使用共享内存模型。

这种模式的另一个好处是,因为你不需要每个请求的线程,你可以有许多并发的开放请求。

一个缺点是,如果没有语言支持,您需要明确排队延续,而不是以简单的命令方式编写代码。 C#5用它的asynchronous等待function来攻击这个问题,如果node.js将来提供类似的东西,我也不会感到惊讶。

本文主要讲述第二个缺点:如果阻塞主线程,则阻塞整个服务器。

他的一个例子就是滥用:他实现了一个繁忙的等待,而不是订阅一个事件。 有了正确的编程,这根本就不应该发生。

另一个例子有更多的一点:如果你有CPU密集型计算,你最好不要在主线程上做。 这个简单的解决scheme是一个工作线程的旋转,即不需要触摸主线程使用的内存就可以进行计算。 一旦完成,它会在主线程中调用一个callback函数。 不知道是否node.js提供这个。 但是由于许多服务器应用程序并不是CPU绑定的,所以这通常不是问题。

一般来说,这篇文章的质量很低,并且比关于node.js更多地讲述了作者。 你不应该让它影响你的决定。