主要特性
如果問我覺得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/