技术开发 频道

Erlang:真的能成为下一代Java语言吗?

二、丰富的多处理器的支持,使Erlang如虎添翼
当使用Erlang构建一个系统的时候,你只能在进程间通过传递消息,来使得一组进程间通信。在Erlang里面没有共享的状态,唯一的方式就是通过发送消息和进程通信。不像Java 或者 Smalltalk,只是在并发操作的时候,写一些线程/进程,Erlang程序员使用进程来模块化,提高可靠性,重用性。以后它们就能自发的并行运行。理论上说,你可以在一个处理器上构建你的系统,但是实际中没有这样的Erlang程序员这么做。他们更喜欢当作有上千个处理器来开发系统。当在一个处理上运行的时候并不影响性能。但是最好利用多处理器,来提高系统的性能。接着,把应用程序放在10个处理器的系统上,你的应用程序就会运行快了十倍(或许八九倍,但是还是不错的)。
当然,因为你写你的应用程序时候,写了上千个的进程并不能说有伸缩性。像任何一个系统一样,你也有瓶颈的。在等待另外一个进程的时候,你要浪费很多的等待时间,希望得到其它进程提供的结果。为了实现Erlang系统的伸缩性,有许多的设计模式供你选择。
Erlang自带了很多程序库。大多数的程序库是为了构建应用程序,或者使用不同种类的网络服务。Erlang有web服务和数据库的功能。Erlang社区将Erlang定位为构建可靠性web服务和web服务应用程序的语言。但是自带的程序库名字大多称为OTP,即开源电信平台。毫不奇怪名字为什么这么起,虽然它与电信没有任何关系。但是Erlang构建运行几十年,在需要每天更新软件,或者周期更换硬件而不中断的开发框架和平台。这正是电信应用程序所需要的,同时是在线银行,在线商店等等所需要的。
Joe Armstrong已经完成了一本关于Erlang的书,已经由Pragmatic Programmers.出版了。Joe还写了一篇关于这本书的文章。这是一本非常好的书,任何对Erlang有兴趣的人应该去读一读。对于这本书,令我很发疯的是它展现的更多的是Erlang最为函数式的语言,而没有很多的关于面向对象的方面。事实上,它否认Erlang是面向对象的。
0
相关文章