【IT168 专稿】 上周我参加了ECOOP(面向对象程序设计欧洲会议),不过我没有坚持到最后就中途退场了。我觉得最为精彩的部分就是Joe Armstrong关于Erlang的讲话,事后我还直接和他进行了交谈。我是去年碰到Joe的,也就是在那个时候,我就一直追随着Erlang语言。
一、高可靠性的Erlang,有望取代Java
Erlang将成为一个非常重要的语言。它也许就是下一代的Java语言。目前Erlang发展的主要问题就在于没有一个大的公司来支持它,作为它强大的后盾。结果,Erlang被推动称为一个开源的项目。Erlang语言最大优势就是它非常适合多核,web服务的特点。事实上,Erlang是唯一成熟的,非常稳定可靠,适合开发运行在多核机器上的高伸缩性的系统。
Erlang最为并行的Prolog,始于20年前。Joe Armstrong发明了它,并成为推动它发展的主要人物。Joe Armstrong在Erickson公司工作,Erickson是一家瑞典的科技公司。最大的第一个Erlang项目是开发一个电子开关系统,此系统有几百人开发,他们写了几百万行的代码。这个系统的要求重点就是可靠性,不专门是速度,最终,这个项目具备了令人难以置信的优良可靠性。Joe声称他们取得了“9个9的可靠性”。
“9个9的可靠性”意识是什么了?意思就是说在一百万秒钟,只有一秒出现故障时间,或者说在一百万分钟,只出现一分钟的故障时间。然而,一百万秒大约就是30年。一百万分钟大约是2000年。这个系统生产出来已经有上10年了,但是我认为少于15年。该公司已经卖出来上百个该系统,或许有上千个。200个系统运行10年的话,加起来就有2000年来了,如果所有的系统加起来总的故障时间少于1分钟的话,那么他们就可以说该系统达到了“9个9的可靠性”。
“5个9的可靠性”是指一年中只有5分钟的故障时间,能达到这个水平就已经很不错了。人们非常热衷追求6个9,或者7个9。要说达到9个9是简直前所未有的。但是,Erlang开发的系统达到了这个空前的水平。
优良的可靠性还不能说明问题,并不能使得Erlang伟大。并不是有足够的人关注稳定性。“顺序的Erlang”作为一个函数型的编程语言也不是使得Erlang伟大的原因。“并行的Erlang'”作为一种面向对象的语言也不是Erlang指的推崇的原因。值得我们称道的是Erlang'是唯一一个成熟的语言,带有可靠的实现工具,和一组非常好的库,能让你的软件无缝的伸缩,从单个处理器系统到使用多个处理器系统使得你的应用程序运行的更快。