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