成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

世界上最低調(diào)的編程語言,高并發(fā)的王者,程序員翻身的秘密武器!

開發(fā) 前端
Discord 就是 Elixir 的早期采用者, Erlang VM 是我們想要構(gòu)建的高并發(fā)實(shí)時(shí)系統(tǒng)的完美候選者,過去兩年,系統(tǒng)中的并發(fā)用戶數(shù)已達(dá)到近 500 萬,每秒有數(shù)百萬個(gè)事件...... 如果讓我從頭再選擇一次的話,我還會(huì)選擇Elixir。

1998年,愛立信推出了一款著名的交換機(jī)AXD301, 這款交換機(jī)實(shí)現(xiàn)了驚人的9個(gè)9(99.9999999%)的可用性。

一般的系統(tǒng),實(shí)現(xiàn)5個(gè)9,即一年停機(jī)5分鐘已經(jīng)相當(dāng)不錯(cuò)了,9個(gè)9意味著20年的運(yùn)行時(shí)間內(nèi)只有0.631秒的停機(jī)時(shí)間。

實(shí)現(xiàn)這個(gè)奇跡的關(guān)鍵就是愛立信發(fā)明的編程語言Erlang。

圖片圖片

Erlang的作者Joe Armstrong在采訪時(shí)說道:

如果Java是“一次編寫,到處運(yùn)行”,Erlang就是“一次編寫,永遠(yuǎn)運(yùn)行!”

圖片圖片

奇怪的是,這么一個(gè)神奇的語言,愛立信竟然禁止在公司內(nèi)部使用了,這是為什么呢?

01起源

Erlang的誕生其實(shí)是個(gè)挺無奈的過程。

最早的時(shí)候,愛立信只想找到一個(gè)語言,更好地構(gòu)建下一代電信系統(tǒng)。

Joe Armstrong等人拿著一個(gè)大“篩子”,把20多種語言“篩來篩去”, 標(biāo)準(zhǔn)是:

1.為了提高生產(chǎn)率,要選擇高級(jí)的聲明式語言

2.為了支持高可用的電信系統(tǒng),在語言層面就得支持并發(fā)和錯(cuò)誤恢復(fù)

第一條“篩”掉了C、PASCAL, Ada, C++等語言,第二條又篩掉了Lisp, Prolog,Parlog等語言。

沒辦法,只好自己發(fā)明一個(gè)新語言了,這就是Erlang。

Erlang的核心是“進(jìn)程”,每個(gè)進(jìn)程使用消息和其他進(jìn)程進(jìn)行通信,每個(gè)進(jìn)程有個(gè)郵箱可以存儲(chǔ)消息,進(jìn)程通過檢查郵箱的消息,然后采取行動(dòng),這其實(shí)就是現(xiàn)在的Actor模型。

圖片圖片

大家也能看出來,Erlang的進(jìn)程不是操作系統(tǒng)中常說的進(jìn)程,它非常輕量級(jí),每個(gè)進(jìn)程的開銷只有幾百個(gè)字節(jié),一臺(tái)服務(wù)器可以輕松地支持幾百萬個(gè)進(jìn)程同時(shí)運(yùn)行。

進(jìn)程可以是分布式的,可以跨越網(wǎng)絡(luò)來互相發(fā)送消息,添加服務(wù)器就可以輕松擴(kuò)展。

Joe Armstrong還在Erlang中內(nèi)置了“彈性”的能力,當(dāng)一個(gè)進(jìn)程崩潰時(shí)——不管是因?yàn)锽ug還是硬件故障——都不會(huì)導(dǎo)致整個(gè)系統(tǒng)崩潰,這對(duì)電話交換系統(tǒng)來說非常重要。

圖片圖片

02艱難發(fā)展

新語言的推廣是非常困難的。

有愛立信員工聽說了Erlang這個(gè)新語言,就在一個(gè)原型系統(tǒng)中嘗試了一下,他們驚奇地發(fā)現(xiàn),這個(gè)新玩意兒開發(fā)起系統(tǒng)來,比其他方案要快得多。

但即使如此,Erlang依然沒法大范圍地在愛立信鋪開使用,更別說普及到全世界了。

Joe Armstrong和團(tuán)隊(duì)想了很多辦法進(jìn)行“促銷”,比如寫書,召開會(huì)議,把Erlang移植到DOS、Windows、Mac、VxWorks等各種平臺(tái)。

圖片圖片

他們甚至錄制了一個(gè)小電影做宣傳。

圖片圖片

1995年,Erlang終于迎來了轉(zhuǎn)機(jī)。

愛立信公司計(jì)劃開發(fā)新一代的交換機(jī)產(chǎn)品,以分組交換形式進(jìn)行語音、數(shù)據(jù)和各種寬帶服務(wù)的通信。

但是這個(gè)項(xiàng)目實(shí)在太復(fù)雜了,最早用C++開發(fā),很快就陷入了巨大的泥潭,瀕臨崩潰。

這時(shí)候,大家想到了Erlang,死馬當(dāng)做活馬醫(yī),用它來救場(chǎng)吧。

Erlang不負(fù)眾望,順利幫助團(tuán)隊(duì)完成了交換機(jī)的開發(fā),這就是文章開頭提到的AXD301。

有意思的是,這么優(yōu)秀的編程語言,愛立信竟然把它禁掉了,禁止內(nèi)部使用!

原因居然是電信產(chǎn)品生命期長(zhǎng),維護(hù)一個(gè)自己專有的語言成本很高,不如采用全世界都用的編程語言!

這個(gè)禁令一出,為Erlang付出大量心血的Joe Armstrong等人大為震驚,沒辦法,只好游說公司開源Erlang。

1998年12月,Erlang正式開源,團(tuán)隊(duì)的初始成員也離開了愛立信,成立了自己的公司Bluetail,致力于Erlang的開發(fā)。

Erlang離開了電信領(lǐng)域,進(jìn)入廣闊的互聯(lián)網(wǎng)市場(chǎng)。

03大放異彩

2009年1月,雅虎前員工Jan Koum買了一部iPhone手機(jī),他想到了一個(gè)點(diǎn)子:為什么不開發(fā)一個(gè)App,通過互聯(lián)網(wǎng)來發(fā)送消息呢?

傳統(tǒng)的方式是短信,資費(fèi)高,還有流量限制,這很不爽。

于是他拉來了雅虎的同事Brian Acton一起干,互聯(lián)網(wǎng)用戶的特點(diǎn)那就是用戶數(shù)極多,并發(fā)數(shù)極高,兩人經(jīng)過研究,發(fā)現(xiàn)Erlang簡(jiǎn)直就是處理大規(guī)模消息的不二之選,后臺(tái)開發(fā)就它了!

2009年1月,WhatsApp誕生。

圖片圖片

WhatsApp一經(jīng)推出,用戶便迅猛增長(zhǎng),如今在全球已經(jīng)擁有了20億活躍用戶。

圖片圖片

2014年,F(xiàn)acebook斥資190億美元收購(gòu)了一個(gè)叫做WhatsApp的軟件,震驚業(yè)界。

此時(shí)的WhatsApp,已經(jīng)有了4.5億億用戶,并且每天以100萬在增長(zhǎng)。

但是,讓人吃驚的是,WhatsApp只有32名工程師,負(fù)責(zé)服務(wù)器后端開發(fā)的程序員只有10人。

這么驚艷的成績(jī),Erlang可以說是功不可沒!

04向Web進(jìn)軍

雖然Erlang性能卓越,但是它的函數(shù)式編程的語法卻并不為大眾所熟悉。

一個(gè)叫Jose Valim的巴西人覺得Erlang, OTP, Beam VM這樣的好東西,廣大的碼農(nóng)群眾不能使用真是太可惜了。

Jose Valim是Ruby on Rails的核心開發(fā)人員,深受Ruby社區(qū)的影響。

于是大神出手,借用了Ruby簡(jiǎn)潔優(yōu)雅的語法,把Erlang和OTP進(jìn)行了包裝,創(chuàng)建Elixir這門新語言。

圖片圖片

圖片圖片

以Elixir為基礎(chǔ),Jose Valim等人還開發(fā)了一個(gè)新的Web框架Phoenix,方便程序員使用Elixir進(jìn)行Web應(yīng)用的開發(fā)。

許多創(chuàng)業(yè)公司使用了Elixir和Phoenix快速構(gòu)建應(yīng)用,尤其是高并發(fā),實(shí)時(shí)的應(yīng)用,其中最著名的是Discord。

圖片圖片

Discord的CTO在2017年的一篇文章中說道:

Discord 就是 Elixir 的早期采用者, Erlang VM 是我們想要構(gòu)建的高并發(fā)實(shí)時(shí)系統(tǒng)的完美候選者,過去兩年,系統(tǒng)中的并發(fā)用戶數(shù)已達(dá)到近 500 萬,每秒有數(shù)百萬個(gè)事件...... 如果讓我從頭再選擇一次的話,我還會(huì)選擇Elixir。

05Erlang為什么不流行?

看到這里,你腦海中很可能會(huì)浮現(xiàn)這個(gè)問題:

你把Erlang吹得天花亂墜,為什么它還無法成為Java這樣的主流語言呢?

有位Lisp大佬Richard P. Gabriel說得很有道理:Worse is better。

大佬說軟件設(shè)計(jì)有四個(gè)目標(biāo):簡(jiǎn)單性,正確性,一致性,完整性。

在軟件設(shè)計(jì)上有兩大流派:MIT流派(以Common Lisp和Scheme為代表)和新澤西流派(就是貝爾實(shí)驗(yàn)室,以Unix和C語言為代表)。

MIT流派認(rèn)為設(shè)計(jì)一定得正確,接口一定得簡(jiǎn)單,為了這兩點(diǎn),實(shí)現(xiàn)層面復(fù)雜一點(diǎn)也沒關(guān)系。

而新澤西流派則反過來,認(rèn)為簡(jiǎn)單性比正確性更重要,尤其是實(shí)現(xiàn)的簡(jiǎn)單性比接口簡(jiǎn)單性更重要。

這帶來的結(jié)果就是:Unix和C語言具備簡(jiǎn)單的結(jié)構(gòu),易于移植,運(yùn)行時(shí)只需要很少的資源,雖然他們只能提供操作系統(tǒng)和編程語言50%~80%的功能,還是能夠像病毒一樣,瘋狂傳播。

因?yàn)閁nix和C解決了痛點(diǎn)問題,大家可以輕松接受,并且由于實(shí)現(xiàn)的簡(jiǎn)單性,很容易和別的平臺(tái)和軟件整合,用戶還會(huì)不斷修改它們,完善它們。

而Erlang,很抱歉,它是典型的MIT流派,這是個(gè)設(shè)計(jì)精巧、實(shí)現(xiàn)復(fù)雜的系統(tǒng),一旦它不能滿足特定需求,想在保證正確性和簡(jiǎn)單性的同時(shí)對(duì)它進(jìn)行修改,非得是高人不可,這一點(diǎn)嚴(yán)重阻礙了Erlang的傳播。

那Erlang真的不好嗎?

不,這要看這要看誰在使用它,WhatsApp和Discord就是典型案例,在這里Erlang和Elixir發(fā)揮了極大的威力,遙遙領(lǐng)先競(jìng)爭(zhēng)對(duì)手。

Paul Graham在《黑客與畫家》的“拒絕平庸”這一章也說過,他用一個(gè)小眾語言Lisp開發(fā)了一個(gè)電子商務(wù)的網(wǎng)站ViaWeb,利用Lisp強(qiáng)大的宏,定制出電子商務(wù)領(lǐng)域的DSL,讓Viaweb開發(fā)速度飛快,他們不斷推出新功能,讓那二三十個(gè)使用C語言和Perl的競(jìng)爭(zhēng)對(duì)手目瞪口呆。

跟隨主流不會(huì)出錯(cuò),但是要想迅速脫穎而出,你得采用那些有點(diǎn)難度的但是生產(chǎn)力驚人的語言,從這個(gè)意義上來說,Erlang/Elixir很可能是擊敗普通人的秘密武器。

責(zé)任編輯:武曉燕 來源: 碼農(nóng)翻身
相關(guān)推薦

2024-01-17 10:05:09

Python內(nèi)省反射機(jī)制

2013-10-16 09:28:14

亞馬遜AWSSDN

2025-05-14 00:01:10

RxJS異步編程響應(yīng)式

2017-12-04 23:25:24

2023-09-25 15:29:44

Go并發(fā)Goroutines

2013-10-16 09:33:36

亞馬遜AWSSDN

2015-08-11 09:18:44

程序員最好

2018-12-04 15:46:53

編程語言Python

2018-07-19 19:07:33

語言編程語言程序

2022-02-11 10:47:17

CIOIT團(tuán)隊(duì)企業(yè)

2011-08-11 17:05:26

2014-01-07 10:46:39

2024-03-15 08:32:20

JavaScriptRust系統(tǒng)編程

2019-11-18 15:07:54

編程語言C#

2025-01-03 16:32:13

SpringBoot虛擬線程Java

2019-11-27 10:38:37

數(shù)據(jù)分析數(shù)據(jù)準(zhǔn)備工具

2009-07-28 10:36:58

云計(jì)算Google秘密武器

2013-09-12 15:39:30

編程語言BANCStar

2025-03-13 00:35:00

2023-05-08 14:54:00

AI任務(wù)HuggingGPT
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精产国产伦理一二三区 | 国产精品美女一区二区 | 日韩1区2区| 日韩三级电影在线看 | 欧美中文视频 | 国产乱精品一区二区三区 | 黑人精品欧美一区二区蜜桃 | 国产精品国产精品国产专区不片 | 日本午夜在线视频 | 日韩成人在线网址 | 国产婷婷| 亚洲成人自拍 | 欧州一区 | 91在线电影 | 玖玖色在线视频 | aa级毛片毛片免费观看久 | 午夜免费视频 | 欧美精品在线免费 | 欧美日韩视频在线 | 欧美 日韩 国产 在线 | 国产在线一区二区三区 | 欧美jizzhd精品欧美巨大免费 | 日日射影院 | 男女午夜激情视频 | 中文字幕久久久 | 麻豆av片| 丁香婷婷在线视频 | www.日韩欧美 | a级性视频| 国产成人免费一区二区60岁 | 美女视频黄的免费 | 亚欧性视频 | 自拍偷拍第一页 | 亚洲人免费视频 | 成人免费观看男女羞羞视频 | aacc678成免费人电影网站 | 久久婷婷麻豆国产91天堂 | 亚洲xxxxx| 久久久久国产一区二区三区 | 久久综合久色欧美综合狠狠 | 81精品国产乱码久久久久久 |