最近看了Erlang程序设计和作者的论文,算是对Erlang有一定的了解吧,来说几点感受。
首先是函数式编程,这是一个炒作的很火的感念,个人并没有体会到它的好处,不知道这个概念或者特性对生产率有什么质的提高。
其次是Erlang的进程和消息队列,感觉这才是Erlang的核心竞争力,通过内置的超轻量级进程,Erlang可以实现并行的Share-Nothing的编程模式,而且可以通过虚拟机实现可移植。Green Thread最近很流行,部分原因是传统的Thread太过重量级,Thread原语也不够有亲和力:),另外一点就是系统逐渐从通用系统到专一系统转化,传统的Thread调度方式由于要操作系统的参与也过于重量级,不在适合。
最后是Erlang面向错误的编程方式,作为一个用过不少现代语言的人来说,这并不是一个很有吸引力的Feature,在当时来说,也许是生死攸关的吧,这种方式感觉过于底层,很多现代的错误处理的方式都没有用上。
Erlang的内置并发特性和内置消息对列,让它成为消息队列的天然选择,RabbitMQ几乎是消息队列中最好的选择。
在Erlang的刺激下,也去关注了一下各种各样的新语言,如Go语言,ECUG最近就很热衷于Go语言,虽然Google自己还没有出个像样的Go语言产品,但是EverBox(QBox)已经开始使用Go作为它们的主要语言了。预计Go将踏着Erlang先烈的足迹,大步地走向光明吧。