Erlang概述

1.Erlang 是什麼

一種“小衆”語言(排名50之外) 

一種函數式語言 (變量只能賦值一次) 

一種動態類型語言(變量類型在運行時決定,代碼需要編譯後才能執行,與Python,Ruby等不一樣) 

一種強類型語言 

一種面向併發(Concurrency Oriented)的語言 

 

2.開始學習

 

先下載安裝包 

 

到 http://www.erlang.org/ 下載最新的 Erlang/OTP 版本 

 

或者到 http://cean.process-one.net/download/ 下載一個更易於使用的發行版本,僅有3M大小

 

3.網上的資源 

 

http://www.erlang.org/ 是官方網站,建議訂閱其郵件列表 

 

訂閱 http://www.planeterlang.org/ 的RSS 

 

http://www.trapexit.org/ 裏面有不錯的文章和教程 

 

http://www.process-one.net/en/ 裏面有不少Erlang項目 

 

http://yaws.hyber.org/ 一個併發效率大大超越Apache的Web server 

 

http://ejabberd.jabber.ru/ 一個Erlang的Jabber服務器實現 

 

http://kl.agile.com/ 裏面有Potian和T1的一些經常討論整理。 

 

http://groups.google.com/group/erlang-china 裏面也有一些相關討論 

 

http://computebank.spaces.live.com/?_c11_blogpart_blogpart=blogview_c=blogpartpartqs=cat%3d%25e5%2588%2586%25e5%25b8%2583%25e5%25bc%258f%25e5%25b9%25b6%25e8%25a1%258c%25e8%25ae%25a1%25e7%25ae%2597 這哥們翻譯了Erlang的部分文檔,太好了 

 

你也可以關注JavaEye的綜合版

 

4.編輯器

 

Erlide,一個Eclipse的Erlang插件,問題是不夠穩定,要隨時做好崩潰的準備 

Vim,加入vim-erlang 和 taglist 插件後就是一個不錯的IDE 

Emacs,推薦,會用Emacs的不妨一試 

NetBeans,dcaoyuan同學正在開發一個Erlang插件,有興趣的可以保持關注 

Notepad,你太有才了,其實用筆記本寫c的也一大堆... 

 

 

3.語法,框架

 

Erlang的語法不是很難,但是寫慣了OO的程序,初看還是蠻怪異的。看看文檔,動手練練,入門還 是很Easy的。當對基本語法,進程通訊,分佈 通訊都掌握之後,就是時候向OTP(Open Telecom Platform)這個平臺進軍的時候了,如果你想開發99.9999999%的高可用性系統。

 

4.算法,架構

 

Erlang這門FP語言提供了非常高的分佈式程序開發效率,不再需要辛辛苦苦使用ACE,NIO構 造一個支持高併發的通訊底層,不再需要小心翼翼 使用lock,semaphore等開發一個多線程的程序。然而,更爲核心的問題出現了,怎樣將一個大規模計算任務通過一個良好的算法並行起來,怎樣實現 進程間的通訊架構,使得系統能夠實現Load Balance和Fail Over,實現高可用性,健壯性,高性能的目標。

 

此外,需要留神IO這個常見的瓶頸,Joe Armstrong曾經寫了一個pmap(parallel map)的實現,在一臺32核的SUN niagara服務器上並行運行一個需要與IO交互的任務。下面是性能提升的數據

 

#CPUs Speedup 

 

1 0,953 

 

2 1,855 

 

3 2,679 

 

4 3,44 

 

5 4,012 

 

6 4,624 

 

7 5,093 

 

8 5,46 

 

9 5,73 

 

10 6,11 

 

11 6,108 

 

12 6,47 

 

13 6,58 

 

14 6,8 

 

15 6,67 

 

16 7 

 

17 6,99 

 

18 7,29 

 

19 6,97 

 

20 6,97 

 

21 6,74 

 

22 6,86 

 

23 7,07 

 

24 6,85

 

 

可見性能提升到了7%後便徘徊不前,追究其原因,是IO那裏成爲了瓶頸。無論是C,Java,Ruby還是Erlang,都要直視IO帶來的問題。

 

轉帖自:SkyRemember博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章