我正在研究创建一个实时文档编辑和聊天应用程序。我一直想学习 Erlang,我想知道这是否是一个很好的项目来尝试一下。
具体来说,与运行在 Mongrel 或 LAMP 堆栈上的 Rails 应用程序相比,我会在什么时候开始看到 Erlang 的容错和轻量级进程的优势?会是 100 个并发用户吗?1,000?100,000?基本上,我不知道是否值得学习一门新语言,或者我目前的技能是否足够。谢谢!
我正在研究创建一个实时文档编辑和聊天应用程序。我一直想学习 Erlang,我想知道这是否是一个很好的项目来尝试一下。
具体来说,与运行在 Mongrel 或 LAMP 堆栈上的 Rails 应用程序相比,我会在什么时候开始看到 Erlang 的容错和轻量级进程的优势?会是 100 个并发用户吗?1,000?100,000?基本上,我不知道是否值得学习一门新语言,或者我目前的技能是否足够。谢谢!
这个问题有点主观,但无论如何我都会尝试回答:
作为 Erlang 的长期用户,我想说只要您拥有超过1 个用户,您就会看到好处。Erlang 在处理并发时使用了actor模型。它的一个好处是您可以以线性方式处理与用户的每个交互/会话/场景,就像您编写任何其他程序程序一样。
当您开始同时处理许多用户之间的交互时,这种美感变得更加明显。然后你为每个用户启动你的小“程序程序”的一个实例。因此,您不必自己处理缩放的困难部分,您只需定义演员之间的交互,Erlang VM 将平衡其余部分(一般来说)。
因此,我想说使用 Erlang 最大的好处不是性能(尽管 Erlang 中有些东西更轻量级和优化),而是模型的简化和并发编程变得多么自然。