為什么使用Erlang?

主要特性

如果問我覺得Erlang最重要的特性是什么的話,我覺得應(yīng)該是并發(fā)。

并發(fā)能夠帶來的好處是不言而喻的,比如:

  • 性能
    現(xiàn)在的計算機由于主頻的限制,都在往多核的方式發(fā)展,有些比較高端的機器甚至有幾十個核心。如果編寫的程序都是順序運行的話將會嚴重浪費多核計算機的計算能力。Erlang本身是面向并發(fā)編程的,如果把之前在單核機器上面跑的Erlang程序放到多核機器上面跑的話,性能將會極大的提高。
  • 擴展性
    如果在一臺機器上面運行Erlang程序還不能滿足性能的要求的話,可以簡單的升級機器的CPU核心個數(shù),甚至可以經(jīng)過簡單的改造把不同的進程分配到不同的機器上面運行,通過水平擴展方式來滿足高并發(fā)的業(yè)務(wù)需求。
  • 容錯性
    Erlang內(nèi)部實現(xiàn)的進程是相互獨立的,一個進程的崩潰并不會影響到另外一個進程的運行,同時Erlang內(nèi)部還OTP框架來保證系統(tǒng)的容錯性。
  • 清晰性
    Erlang世界觀和現(xiàn)實的世界是一樣的,在大多數(shù)的編程語言里面事情都是順序發(fā)生的,但是在Erlang的世界里面所有的事件都是并發(fā)的,在編寫程序的時候能夠比較清晰的把現(xiàn)實世界事件的并行發(fā)生的的特性映射到Erlang的并發(fā)編程上面。

簡介

快速介紹下Erlang比較與眾不認同的特性:

  • Erlang Shell
    在編寫Erlang程序的過程中會有很多時間花費在Erlang Shell里面,Erlang Shell類似于Linux的Bash,開發(fā)者能在Erlang Shell里面運行表達式,通過這種交互方式,開發(fā)者能夠在Erlang Shell里面調(diào)試正在運行的Erlang程序(包括遠程的Erlang程序)。
  • = 操作符
    在一般的編程語言里面,=表示賦值操作,一個變量能夠被多次賦值。但是在Erlang里面變量是不可變的,一旦通過=綁定之后,該變量的值就不能發(fā)生改變了,重復(fù)綁定會導致異常。
  • 變量和原子
    所有Erlang的變量都是以大寫字母開頭的,比如:One、This和My_baby這些都是變量。以小寫字母開頭的則是符號常量(被稱為原子:atom),比如:person、one和hello_world。
  • 進程
    Erlang的進程是Erlang虛擬機內(nèi)部自己實現(xiàn)的進程,非常輕量級,剛開始創(chuàng)建的時候每個進程的大小也就2KB左右,1GB的內(nèi)存就可以創(chuàng)建50萬個進程。同時進程間沒有共享內(nèi)存,進程間的通信通過消息轉(zhuǎn)發(fā)實現(xiàn)。

總結(jié)

Erlang的特性決定了它是一門比較另類的語言,相信第一次見到它的人會覺得很吃驚,世界上居然會有這樣的一門語言。但正是由于這些看似奇怪的特性,讓Erlang能夠在當今多核的時代充分的發(fā)揮它的能力。

最后更新時間:2017-04-29 23:23:16
轉(zhuǎn)載請注明出處,Darcy's Blog https://lintingbin2009.github.io/2017/04/29/為什么使用Erlang/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 又來到了一個老生常談的問題,應(yīng)用層軟件開發(fā)的程序員要不要了解和深入學習操作系統(tǒng)呢? 今天就這個問題開始,來談?wù)劜?..
    tangsl閱讀 4,311評論 0 23
  • 世界是并行的,Erlang程序反應(yīng)了我們思考和交流的方式,人作為個體通過發(fā)送消息進行交流,如果有人死亡,其他人會注...
    abel_cao閱讀 2,855評論 1 4
  • 從三月份找實習到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,778評論 11 349
  • 本節(jié)學習內(nèi)容: 1.繼承的概念 2.子類重寫父類的方法 3.父類指針指向子類對象 4.多態(tài)實現(xiàn) 【main.m】 ...
    奔跑的小小魚閱讀 576評論 0 0
  • 01 秋葉大叔的讀書套路好深## 看過《天龍八部》的人都知道,小說里有一種很厲害的武功——北冥神功,施功者能夠在極...
    悠然遇見南山閱讀 531評論 0 3

友情鏈接更多精彩內(nèi)容