我还不太了解它,但我听说Erlang在处理网络应用方面有点特别;据我了解,这来自于一些早期的设计决策,这些决策允许它有数千个并发进程,而且开销有限。
我本质上是一名python程序员,我最近喜欢使用0mq进行分布式计算like this,直到我遇到this article批评this article。
Erlang对于网络/并发性有什么特别之处,以及哪些python库或一组库试图复制/替换它的哪些部分?我无法理解这些项目如何适应分布式网络编程图片:
(据我所知,Celery和RabbitMQ是一种略有不同的野兽,因为它们是消息传递,但它们要求一个队列系统,这是一种特殊类型的分布式计算。)这些“如何”映射到哪个功能,以及应该何时使用?
我还审查了以下内容:
答案 0 :(得分:2)
你的问题非常广泛,我将简要回答几点。任何语言的并发性都不完美,每种语言,模型,框架,库都有局限性,它们可以完美适用于一部分情况,但一般来说没有什么是完美的。
当我们比较两种语言的并发性时,我们必须看看所有方面。 Erlang受欢迎的原因有很多,而且与python不同。
强大的并发性有助于构建优秀,可扩展,强大且容错的网络应用程序,而Erlang具备这些品质。我对python知之甚少,但据我所知,python中的并发性不如Erlang,请参阅下面的内容,了解为什么我这么说。
让我向您介绍一下Erlang和并发性的一些观点。
还有许多其他功能使Erlang非常适合并发,因此适用于网络应用程序。许多其他并发语言从Erlang中获取了基本上由Erlang引入的概念。
演员模特是Erlang的秘密酱油
那不是真的。 Scala(通过Akka)和许多其他语言(或库)支持演员(类似于Erlang)