Erlang并不是一个新的语言,实际上它本身和它的前身都已经在许多电信系统里有很长时间的应用。只是在当今比较热抄concurrent programming的情景下,又被更多的关注了。

Erlang可以做的东西,并不是其它语言就不能做,而且一些项目迁移到Erlang前,本身也是用C写的。比如最近37Signals的Campfire中的Poller Service就重新用Erlang写了。从他们公布的运行情况来看,性能还是很令人满意的。

Erlang比较独特的核心理念有两个,第一是Process间的消息机制,这从很大程度上方便了过去我们在并发情况下需要特别注意共享的内存变量的问题。第二是Erlang VM,这使得开发RPC and Distributed Computing System变得容易了许多,而且很容易进行横向的扩展。

不过这个语言让我头疼的地方在于它的一些语法特性,我觉得这方面是Erlang本身疏于设计的缺陷,比如像不同的statement结束符号就让人在修改代码的过程中经常会犯错,这是需要时间适应的地方。

Erlang的特性非常适合一些Messaging System的开发,而且本身就有一些比较成熟的案例,比如RabbitMQFacebook Chat Engine。

另外一个Erlang逐渐更被关注的原因可能是在Web开发领域,也有许多不错的产品和项目是用Erlang实现的,而在某种程度中,这些产品和项目都非常有特点,比如 Erlyweb, Mochiweb, Yaws, Ejabberd, CouchDB, SimpleDB等。

学习一下这个语言还是有些意思的,特别是在接下来的这个时代。而且事实上,如果你要找一个使用Java开发multi-threaded项目的人,最终花费的成本可能比找一个Erlang程序员做同样事情要更多,因为开篇就说过,Erlang并不是一个全新的事物,而且它本来就是为做这些事情设计的。