注册

Erlang是未来用于并发性的Java?

未来的计算是并发计算。现今甚至桌面CPU也是多核的,当客户给他们的服务器购买了越来越多的CPU时,他们期望其应用伸缩自如以利用他们的新投资。但是今天的许多软件系统并不能做到这一点。

处理并发计算是件困难的事情。但是在普遍使用的编程语言中,并发机制与同一语言的许多其他抽象相比是低层机制,对解决这一问题没有帮助。处理并发性需要做许多工作,但是有使其更简单的方法。

Ralph Johnson 撰写了一篇关于 Erlang 将成为 下一个Java的博文。Erlang进程间通讯的视角完全不同,而且Ralph说:即便并发性的Erlan风格可以很容易的增加到其他语言中,这些语言还是很难竞争。

“我不相信其它语言能迅速赶上Erlang。对它们来说,加入像Erlang这样的语言特征是很容易的。但这将花费他们大量的时间来构建这样一个高质量的VM和成熟的并发性与可**性类库。因此Erlang很自然会成功。如果你想在未来几年构建一个多核应用,你应该看看Erlang。 ”

而且可能还能得到更多的额外好处。Erlang的创造者——Joe Armstrong,写过面对可伸缩性、容错性以及运行时可更新系统所带来挑战的一石三鸟的解决方案。他说即使这些是不同类型的问题

“一个容错的系统可以很容易成为可伸缩的系统,也很容易成为能够进行热升级(in-service upgrade)的系统”。

Armstrong把这一切都归功于Erlang有一套恰当的故障探测和稳定存储的原语(primitive)。因为Erlang是专为电信系统而构建的,所有这些方面都重要,并且爱立信已经构建了一个Erlang系统,拥有99.9999999%的正常运转时间。即每年31毫秒的停机时间。

Erlang不具有任何共享状态,因而呈现出与主流语言不同的并发性。其进程是非常轻量级的,一个进程与另一个进程通过发送消息进行通讯。与那些使用共享内存来完成进程或线程之间通讯的系统不同,这一架构使伸缩性和分布式系统成为可能。为深入研究这种并发方式,Slava Akhmechet撰写了对这一概念很好的介绍(不需要有Erlang知识)。

或许是用不同的方式来解决并行问题的时候了?或许是学习一门新语言的时候了?

查看英文原文:Is Erlang the Java for the concurrent future?

InfoQ中文站原文链接:Erlang是未来用于并发性的Java?

已邀请:
鼓励一下,帖子非常好











static/image/common/sigline.gif
90%打工小伙一生都不可能知道的秘密http://user.qzone.qq.com/82175487

要回复问题请先登录注册