【问题标题】:Will node's web workers detronize erlang? [closed]node 的 web workers 会淘汰 erlang 吗? [关闭]
【发布时间】:2011-05-31 08:28:35
【问题描述】:

我很好奇 Erlang 是否会被 Node.js 杀死,Node.js 可能非常流行、速度很快并且有web workers。可能吗?为什么?

但是多处理器呢? 并发?是否不需要线程 将程序扩展到多核 电脑?过程是必要的 扩展到多核计算机,而不是 内存共享线程。这 可扩展系统的基础是 快速联网和无阻塞 设计——剩下的就是消息传递。在 未来的版本,Node 将能够 fork 新进程(使用 Web Workers API ) 非常适合 目前的设计。

【问题讨论】:

  • 一切皆有可能。 Node.js 非常新;说它将完全超越某些东西现在完全是基于意见的。
  • 您可能还想将 Google Go 添加到组合中。里面也包含了很多 Erlang/Node.js 的思想。它具有原始速度的明显优势。

标签: erlang node.js web-worker


【解决方案1】:

不太可能。

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

Node.js 肯定有许多优点,但似乎没有一个能将 Erlang 赶出它的位置。我希望 node.js 会取代 PHP :)

【讨论】:

    【解决方案2】:

    Node.js 是对“如何通过将事件循环绑定到一种代码行数极少的语言来构建高效的并发系统”这一问题的答案。这个问题本身也很精彩。

    Erlang 是对并发问题、语言、编译器、库的更完整的解决方案,一切都是围绕容错、分布和并发从头开始构建的。

    Erlang 优势的完整列表?清单很长,我没有那么多时间。几个示例:

    • 一种轻量级、可扩展的并发机制(进程),而不是一种轻量级的(事件)和一种重量级的(网络工作者)
    • 进程之间的主管层次结构
    • 软实时功能(由于语言设计、编译器和运行时支持)
    • 进程维护一个调用堆栈,node.js 中的事件忘记了它们来自哪里,这使得错误消息/堆栈跟踪的洞察力大大降低
    • 无需在延续传递样式中嵌套括号/缩进来创建回调,事件循环和延续传递由编译器/运行时管理

    Node.js 具有使用 JavaScript 的明显优势,因此它可能会在流行度方面击败 Erlang,只要 node.js 足够好,在很多地方。

    【讨论】:

      【解决方案3】:

      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。

      【讨论】:

        猜你喜欢
        • 2014-03-31
        • 2012-05-11
        • 2016-04-05
        • 1970-01-01
        • 2013-06-08
        • 2010-09-18
        • 2011-08-08
        • 2012-08-13
        • 1970-01-01
        相关资源
        最近更新 更多