节点的网络工作者是否会贬低erlang?

Raf*_*ota 4 erlang web-worker node.js

我很好奇Erlang是否会被Node.js杀死,这可能是非常受欢迎,速度快,并且有网络工作者.可能吗?为什么?

但是多处理器并发呢?将程序扩展到多核计算机不是必需的线程吗?需要进程才能扩展到多核计算机,而不是内存共享线程.可扩展系统的基础是快速网络和非阻塞设计 - 其余的是消息传递.在未来的版本中,Node将能够分叉适合当前设计的新流程(使用Web Workers API).

I G*_*ERS 16

Node.js和Erlang在大草原上是完全不同的野兽.

例子:

Node.js以协作式多任务模型为中心,让人想起Python Twisted或Rubys EventMachine.相反,Erlang是一个先发制人的多任务系统,配有调度程序等.

Node.js实现了JavaScript,这是一种基于原型的OO语言,具有必要的基础和一些功能性思想.实际上,Erlang实现了通常功能风格的增强lambda演算.

Node.js主要围绕单个机器居中,每个请求按顺序处理.即将到来的Web worker和multi-node扩展允许您使用机器的所有CPU.Erlang旨在无缝集成多个节点,这些节点旨在用于让(多个)Erlang物理机器的集群无缝地相互通信.

Node.js采用了在大多数语言中发现的主动故障缓解的常规立场.另一方面,Erlang采取了一种反应性故障缓解立场:即使出现了无法解决的错误,系统也能够生存下来.在最糟糕的情况下,让另一台物理机器接管.

Node.js在很大程度上依赖于JIT来获得速度.Erlang是一种更标准的编译语言.结果是Erlang可能更适合软实时,因为一段代码的挂钟时间通常更容易预测.

讨论:

应该清楚的是,提出的问题的方法与两种语言有很大的不同.因此,出于这个原因,可能值得保持两者.换句话说,我认为一种语言不会完全取代另一种语言.Node.js具有熟悉程度.Erlang具有独特的强度和强大的力量.

免责声明:我黑客Erlang.


900*_*000 5

不太可能.

  • 利用JS的可变数据结构,在处理共享数据时,还有更多方法可以自己拍脚.
  • Erlang解决方案可以轻松,透明地集群化; node.js似乎没有提供类似的支持.
  • Erlang VM似乎提供了更多工具来查看正在运行的系统.
  • Erlang是静态编译的,并且有一些静态类型支持; 这通常会提高可靠性.
  • V8只是因为JIT而运行速度很快,JIT经常消耗大量内存.Erlang的VM可能在相同的CPU和内存预算下处理更多负载.

Node.js肯定有很多好处,但这些似乎都没有从它的位置驱逐Erlang.我希望node.js能够取代PHP而不是:)