AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

世界上最低調的編程語言,高并發的王者,程序員翻身的秘密武器!

來源: 責編: 時間:2023-10-08 09:59:03 254觀看
導讀1998年,愛立信推出了一款著名的交換機AXD301, 這款交換機實現了驚人的9個9(99.9999999%)的可用性。一般的系統,實現5個9,即一年停機5分鐘已經相當不錯了,9個9意味著20年的運行時間內只有0.631秒的停機時間。實現這個奇跡的

1998年,愛立信推出了一款著名的交換機AXD301, 這款交換機實現了驚人的9個9(99.9999999%)的可用性。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

一般的系統,實現5個9,即一年停機5分鐘已經相當不錯了,9個9意味著20年的運行時間內只有0.631秒的停機時間。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

實現這個奇跡的關鍵就是愛立信發明的編程語言Erlang。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

圖片圖片KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

Erlang的作者Joe Armstrong在采訪時說道:KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

如果Java是“一次編寫,到處運行”,Erlang就是“一次編寫,永遠運行!”KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

圖片圖片KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

奇怪的是,這么一個神奇的語言,愛立信竟然禁止在公司內部使用了,這是為什么呢?KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

01起源

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

Erlang的誕生其實是個挺無奈的過程。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

最早的時候,愛立信只想找到一個語言,更好地構建下一代電信系統。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

Joe Armstrong等人拿著一個大“篩子”,把20多種語言“篩來篩去”, 標準是:KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

1.為了提高生產率,要選擇高級的聲明式語言KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

2.為了支持高可用的電信系統,在語言層面就得支持并發和錯誤恢復KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

第一條“篩”掉了C、PASCAL, Ada, C++等語言,第二條又篩掉了Lisp, Prolog,Parlog等語言。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

沒辦法,只好自己發明一個新語言了,這就是Erlang。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

Erlang的核心是“進程”,每個進程使用消息和其他進程進行通信,每個進程有個郵箱可以存儲消息,進程通過檢查郵箱的消息,然后采取行動,這其實就是現在的Actor模型。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

圖片圖片KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

大家也能看出來,Erlang的進程不是操作系統中常說的進程,它非常輕量級,每個進程的開銷只有幾百個字節,一臺服務器可以輕松地支持幾百萬個進程同時運行。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

進程可以是分布式的,可以跨越網絡來互相發送消息,添加服務器就可以輕松擴展。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

Joe Armstrong還在Erlang中內置了“彈性”的能力,當一個進程崩潰時——不管是因為Bug還是硬件故障——都不會導致整個系統崩潰,這對電話交換系統來說非常重要。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

圖片圖片KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

02艱難發展

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

新語言的推廣是非常困難的。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

有愛立信員工聽說了Erlang這個新語言,就在一個原型系統中嘗試了一下,他們驚奇地發現,這個新玩意兒開發起系統來,比其他方案要快得多。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

但即使如此,Erlang依然沒法大范圍地在愛立信鋪開使用,更別說普及到全世界了。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

Joe Armstrong和團隊想了很多辦法進行“促銷”,比如寫書,召開會議,把Erlang移植到DOS、Windows、Mac、VxWorks等各種平臺。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

圖片圖片KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

他們甚至錄制了一個小電影做宣傳。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

圖片圖片KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

1995年,Erlang終于迎來了轉機。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

愛立信公司計劃開發新一代的交換機產品,以分組交換形式進行語音、數據和各種寬帶服務的通信。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

但是這個項目實在太復雜了,最早用C++開發,很快就陷入了巨大的泥潭,瀕臨崩潰。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

這時候,大家想到了Erlang,死馬當做活馬醫,用它來救場吧。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

Erlang不負眾望,順利幫助團隊完成了交換機的開發,這就是文章開頭提到的AXD301。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

有意思的是,這么優秀的編程語言,愛立信竟然把它禁掉了,禁止內部使用!KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

原因居然是電信產品生命期長,維護一個自己專有的語言成本很高,不如采用全世界都用的編程語言!KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

這個禁令一出,為Erlang付出大量心血的Joe Armstrong等人大為震驚,沒辦法,只好游說公司開源Erlang。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

1998年12月,Erlang正式開源,團隊的初始成員也離開了愛立信,成立了自己的公司Bluetail,致力于Erlang的開發。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

Erlang離開了電信領域,進入廣闊的互聯網市場。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

03大放異彩

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

2009年1月,雅虎前員工Jan Koum買了一部iPhone手機,他想到了一個點子:為什么不開發一個App,通過互聯網來發送消息呢?KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

傳統的方式是短信,資費高,還有流量限制,這很不爽。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

于是他拉來了雅虎的同事Brian Acton一起干,互聯網用戶的特點那就是用戶數極多,并發數極高,兩人經過研究,發現Erlang簡直就是處理大規模消息的不二之選,后臺開發就它了!KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

2009年1月,WhatsApp誕生。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

圖片圖片KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

WhatsApp一經推出,用戶便迅猛增長,如今在全球已經擁有了20億活躍用戶。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

圖片圖片KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

2014年,Facebook斥資190億美元收購了一個叫做WhatsApp的軟件,震驚業界。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

此時的WhatsApp,已經有了4.5億億用戶,并且每天以100萬在增長。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

但是,讓人吃驚的是,WhatsApp只有32名工程師,負責服務器后端開發的程序員只有10人。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

這么驚艷的成績,Erlang可以說是功不可沒!KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

04向Web進軍

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

雖然Erlang性能卓越,但是它的函數式編程的語法卻并不為大眾所熟悉。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

一個叫Jose Valim的巴西人覺得Erlang, OTP, Beam VM這樣的好東西,廣大的碼農群眾不能使用真是太可惜了。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

Jose Valim是Ruby on Rails的核心開發人員,深受Ruby社區的影響。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

于是大神出手,借用了Ruby簡潔優雅的語法,把Erlang和OTP進行了包裝,創建Elixir這門新語言。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

圖片圖片KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

圖片圖片KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

以Elixir為基礎,Jose Valim等人還開發了一個新的Web框架Phoenix,方便程序員使用Elixir進行Web應用的開發。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

許多創業公司使用了Elixir和Phoenix快速構建應用,尤其是高并發,實時的應用,其中最著名的是Discord。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

圖片圖片KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

Discord的CTO在2017年的一篇文章中說道:KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

Discord 就是 Elixir 的早期采用者, Erlang VM 是我們想要構建的高并發實時系統的完美候選者,過去兩年,系統中的并發用戶數已達到近 500 萬,每秒有數百萬個事件...... 如果讓我從頭再選擇一次的話,我還會選擇Elixir。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

05Erlang為什么不流行?

KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

看到這里,你腦海中很可能會浮現這個問題:KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

你把Erlang吹得天花亂墜,為什么它還無法成為Java這樣的主流語言呢?KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

有位Lisp大佬Richard P. Gabriel說得很有道理:Worse is better。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

大佬說軟件設計有四個目標:簡單性,正確性,一致性,完整性。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

在軟件設計上有兩大流派:MIT流派(以Common Lisp和Scheme為代表)和新澤西流派(就是貝爾實驗室,以Unix和C語言為代表)。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

MIT流派認為設計一定得正確,接口一定得簡單,為了這兩點,實現層面復雜一點也沒關系。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

而新澤西流派則反過來,認為簡單性比正確性更重要,尤其是實現的簡單性比接口簡單性更重要。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

這帶來的結果就是:Unix和C語言具備簡單的結構,易于移植,運行時只需要很少的資源,雖然他們只能提供操作系統和編程語言50%~80%的功能,還是能夠像病毒一樣,瘋狂傳播。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

因為Unix和C解決了痛點問題,大家可以輕松接受,并且由于實現的簡單性,很容易和別的平臺和軟件整合,用戶還會不斷修改它們,完善它們。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

而Erlang,很抱歉,它是典型的MIT流派,這是個設計精巧、實現復雜的系統,一旦它不能滿足特定需求,想在保證正確性和簡單性的同時對它進行修改,非得是高人不可,這一點嚴重阻礙了Erlang的傳播。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

那Erlang真的不好嗎?KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

不,這要看這要看誰在使用它,WhatsApp和Discord就是典型案例,在這里Erlang和Elixir發揮了極大的威力,遙遙領先競爭對手。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

Paul Graham在《黑客與畫家》的“拒絕平庸”這一章也說過,他用一個小眾語言Lisp開發了一個電子商務的網站ViaWeb,利用Lisp強大的宏,定制出電子商務領域的DSL,讓Viaweb開發速度飛快,他們不斷推出新功能,讓那二三十個使用C語言和Perl的競爭對手目瞪口呆。KjM28資訊網——每日最新資訊28at.com

KjM28資訊網——每日最新資訊28at.com

跟隨主流不會出錯,但是要想迅速脫穎而出,你得采用那些有點難度的但是生產力驚人的語言,從這個意義上來說,Erlang/Elixir很可能是擊敗普通人的秘密武器。KjM28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-12396-0.html世界上最低調的編程語言,高并發的王者,程序員翻身的秘密武器!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 面向并行處理的7個Python庫

下一篇: Java并發編程:理解多線程和鎖機制

標簽:
  • 熱門焦點
Top