我很好奇Erlang是否会被Node.js杀死,这可能非常受欢迎,速度很快且有web workers。可能吗?为什么呢?
但是多处理器呢? 并发?不是必需的线程 将程序扩展到多核 电脑?流程是必要的 扩展到多核计算机,而不是 内存共享线程。该 可扩展系统的基础是 快速网络和非阻塞 设计 - 其余的是消息传递。在 未来的版本,Node将能够 fork新进程(使用Web 工人API)非常适合 目前的设计。
答案 0 :(得分: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具有独特的力量w.r.t.的鲁棒性。
免责声明:我破解了Erlang。
答案 1 :(得分:5)
不太可能。
Node.js肯定有很多好处,但这些似乎都没有从它的位置驱逐Erlang。我希望node.js能够取代PHP:)
答案 2 :(得分:4)
Node.js是一个问题的答案,“如何通过将一个事件循环用一个非常少的代码行固定到一种语言上来构建一个高效的并发系统”。问题本身也很有意义。
Erlang是对并发性问题,语言,编译器,库的完整答案,一切都是围绕容错,分布和并发构建的。
Erlang的完整列表优势?这是一个很长的清单,我没有那么多时间。一些样本:
Node.js具有使用JavaScript的独特优势,因此无论node.js是否足够好,它在人气方面都可能胜过Erlang,而且在很多地方都是如此。