erlang編程
㈠ 如何理解erlang的分布式和並發
Erlang的並發性能也並非最強過去曾認為Erlang就代表高並發,高並發就代表高性能,同時認為Erlang就只是高並發的代名詞。其實,Erlang的並發性能也並非最強。首先Erlang的虛擬機是C寫的,其次諸如Haskell、OCaml + JoCaml,以及Python的PyPy,其實都能提供不弱於Erlang的並發能力。
同時Erlang在順序計算上的性能也不佳,甚至不能超過Python、Lua這類腳本語言(也許是和其本身的特殊性質有關)。所以就更落後於Haskell和OCaml這類可編譯的語言。然而即使並發和並行也需要順序計算,所以單從並發性能上來說,Erlang還不是最強的。
Erlang寫的Yaws這個Web伺服器,雖然能承受高並發,但性能,尤其是IO性能依然無法與lighttpd、nginx這種C寫的Web服務相比——Erlang的虛擬機本身也是C寫的。
同時,Erlang本身設計為一個結構化編程語言而非面向對象編程語言。這就令其較難應用更有開發效率的面向對象的項目開發流程和方法。
那麼為何Erlang在並發、分布式編程中如此受推崇?我認為因為它本身是並發和並行在語義、處理上的一致,所以它編寫此類程序更加方便。同時,它提供的是一個關於並發、並行以及分布式的統一的解決方案,而不僅僅是高並發。它的目的是構建有容錯能力、有伸縮性的可靠系統,同時又能最簡化編程工作。這就是它的真正的優勢。
㈡ elang是什麼語言
Erlang是一種面向並發運行環境的通用編程語言。該語言由愛立信公司在1986年開始開發。設計之初,Erlang的開發者著眼於找到一種適用於開發大型電信交換設備的編程語言
㈢ erlang開發還有前途嗎
作者:GhostComputing
鏈接:https://www.hu.com/question/21144196/answer/44397463
來源:知乎
著作權歸作者所有,轉載請聯系作者獲得授權。
Erlang 不僅僅是一門編程語言,它背後有強大的 OTP 開發框架作支持。Erlang 的語法概念簡潔明了,除了一些FP方面的知識在首次學習時需要適應外,其他很多語法細節其實都非常容易上手。所以,單純從語言層面上來說,Erlang 挺簡單的。但是,Erlang 最大的用途是做分布式網路應用開發,用 Erlang 做開發不僅僅只是簡單地用一門小眾的語言來堆砌 A/B/C/D 語言也能描述的邏輯,而是要利用這門語言和提供的開發框架怎麼去更好地搭建分布式平台,而你在這個開發過程所學習到的知識是跨語言、遷移性很強的;
Erlang 生態圈中的很多開源代碼非常具有研究和學習價值。比如cowboy,RabbitMQ,riak等等。如果你感興趣,甚至可以深入 Erlang 語言的實現,去學習調度器是怎麼實現的(C語言),去研究OTP的實現等等。Erlang 得天獨厚的分布式網路開發特性讓你有機會去深入研究網路開發的諸多細節,只要你學有餘力。而且,研究之後得到的體會也是跨語言跨平台跨架構;
作為一個工程師,必需善於思考總結和腳踏實地。當你選擇學習 Erlang 的時候,你是在進行你的技術投資。但是,投資是有分輕重的。你可以短線持有,浮光掠影地玩一玩;也可以長線持有,為你提供穩定且增長的收益。特別是作為一個程序員,我們的技術生命不應該只局限於一種編程語言/框架/系統,我們要開闊視野,有容乃大。在把握好技術深度的前提下,到處探索計算機編程的樂趣,這難道不是一種難得的體驗嗎 ?當你有火候到了的時候,你還擔心說你前些年從事的是 Erlang 編程工作,怕找不到工作嗎 ?
不要隨便給別人貼標簽,也不要隨便給自己貼標簽。作為一個工程師,朴實嚴謹地研究技術,開開心心地解決問題,這些都是快樂的本源(似乎離題了......)。
Erlang我也是最近接觸,並且下定決定一定要在今年之內入門,並且做一個小項目出來。
現在我不能告訴你,學習這么語言有多掙錢,我只能告訴你,我為什麼想學這么語言。
Erlang,個人認為,更多的是做後台上的高性能高負載的服務。那麼為什麼不用其他的語言呢?因為現在的計算機CPU的單核運算速度,已經基本上可以說遇到瓶頸了。3.x,再往上提,散熱就很成問題了。所以多核CPU就相對應的誕生了。但是面對多核伺服器,其他的語言利用率就全看程序員個人了。Erlang則能夠自動的分配資源,全面利用你的多核CPU,讓運算速度無限趨近於最低值。所以掌握一門多線程語言,是很有必要的。而Erlang就是我選中的語言。
好吧,我的表達可能會相對亂一些,湊合著看吧