Erlang进程间通讯的视角完全不同,而且Ralph说:即便并发性的Erlan风格可以很容易的增加到其他语言中,这些语言还是很难竞争。因为Erlang是专为电信系统而构建的,所有这些方面都重要,并且爱立信已经构建了一个Erlang系统,拥有99.9999999%的正常运转时间。Erlang不具有任何共享状态,因而呈现出与主流语言不同的并发性。
未来的计算是并发计算。现今甚至桌面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知识)。
或许是用不同的方式来解决并行问题的时候了?或许是学习一门新语言的时候了?
原文:http://www.infoq.com/news/2007/08/erlang-java-for-concurrent-futur