日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

02艱難發展

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

03大放異彩

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

04向Web進軍

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

05Erlang為什么不流行?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

標簽:
  • 熱門焦點
  • 5月安卓手機好評榜:魅族20 Pro奪冠

    性能榜和性價比榜之后,我們來看最后的安卓手機好評榜,數據來源安兔兔評測,收集時間2023年5月1日至5月31日,僅限國內市場。第一名:魅族20 Pro好評率:97.50%不得不感慨魅族老品牌還
  • 《英雄聯盟》夏季賽總決賽今日開打!JDG對陣LNG首發名單來了 Knight:準備三連冠

    8月5日消息,今日17:00,《英雄聯盟》2023LPL夏季賽總決賽將正式開打,由JDG對陣LNG。對兩支隊伍來說,這場比賽不僅要爭奪夏季賽冠軍,更要決定誰才是LPL賽區一
  • 十個可以手動編寫的 JavaScript 數組 API

    JavaScript 中有很多API,使用得當,會很方便,省力不少。 你知道它的原理嗎? 今天這篇文章,我們將對它們進行一次小總結。現在開始吧。1.forEach()forEach()用于遍歷數組接收一參
  • 三言兩語說透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是兩種很有用的技術,可以幫助我們寫出更加優雅、泛用的函數。本文將首先介紹柯里化和反柯里化的概念、實現原理和應用
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人員可能會涉及各種各樣的安全任務,包括但不限于:開發某些安全工具的插件,滿足自己特定的安全需求;自定義github搜索工具,快速查找所需的安全資料、漏洞poc、exp
  • 2023年,我眼中的字節跳動

    此時此刻(2023年7月),字節跳動從未上市,也從未公布過任何官方的上市計劃;但是這并不妨礙它成為中國最受關注的互聯網公司之一。從2016-17年的抖音強勢崛起,到2018年的“頭騰
  • Temu起訴SHEIN,跨境電商戰事升級

    來源 | 伯虎財經(bohuFN)作者 | 陳平安日前據外媒報道,拼多多旗下跨境電商平臺Temu正對競爭對手SHEIN提起新訴訟,訴狀稱Shein“利用市場支配力量強迫服裝廠商與之簽訂獨家
  • 10天營收超1億美元,《星鐵》比《原神》差在哪?

    來源:伯虎財經作者:陳平安即便你沒玩過《原神》,你一定聽說過的它的大名。恨它的人把《原神》開服那天稱作是中國游戲史上最黑暗的一天,有粉絲因為索尼在PS平臺上線《原神》,怒而
  • 2299元起!iQOO Pad明晚首銷:性能最強天璣平板

    5月23日,iQOO如期舉行了新品發布會,除了首發安卓最強旗艦處理器的iQOO Neo8系列新機外,還在發布會上推出了旗下首款平板電腦——iQOO Pad,其最大的賣點
Top 主站蜘蛛池模板: 准格尔旗| 尉犁县| 巨野县| 织金县| 宁都县| 梁河县| 简阳市| 张家界市| 合作市| 北辰区| 壶关县| 濮阳县| 浠水县| 克东县| 河津市| 安陆市| 九龙县| 额尔古纳市| 平谷区| 宜宾县| 巨野县| 藁城市| 宁都县| 松江区| 涞水县| 遂平县| 邵阳县| 哈巴河县| 德保县| 宁晋县| 库尔勒市| 和平区| 富顺县| 平和县| 浦江县| 大同市| 伊川县| 蒙阴县| 弥渡县| 潞城市| 抚顺市|