190億美元的WhatsApp背后的小眾編程語(yǔ)言:Erlang
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 企業(yè)管理交流 』
只憑 32 個(gè)技術(shù)人員,如何應(yīng)付 4.5 億的用戶(hù)?對(duì)于剛剛被 Facebook 用 190 億美元收購(gòu)的 WhatsApp 來(lái)說(shuō),答案是 Erlang ——一種誕生于上世紀(jì) 80 年代的編程語(yǔ)言,終于在此時(shí)走到了聚光燈下。
但面對(duì)很多試圖替代它的編程語(yǔ)言,Erlang 有自己的將來(lái)嗎? Erlang是 25 年前由瑞典電信巨頭愛(ài)立信開(kāi)發(fā),而現(xiàn)在它卻在像 WhatsApp 和TigerText這樣的即時(shí)消息應(yīng)用里找到了自己的位置。即使 Facebook 也對(duì)這種語(yǔ)言大唱贊歌——它在 2009 年用 Erlang 開(kāi)發(fā)了 Facebook 聊天應(yīng)用。而在同年,它拒絕了 WhatsApp 創(chuàng)始人 Brian Acton 的求職申請(qǐng)。 并發(fā)成為新寵 " 使用 Erlang,你可以開(kāi)發(fā)出同時(shí)允許大量用戶(hù)連接的消息傳輸應(yīng)用,而不用擔(dān)心消息是如何傳輸?shù)模?quot; 使用這種語(yǔ)言開(kāi)發(fā)的匿名發(fā)帖系統(tǒng)Whisper的 CTO Chad DePue說(shuō)。" 相反 ",他說(shuō)," 你擔(dān)心的是如何設(shè)計(jì)一個(gè)好的應(yīng)用。" 愛(ài)立信工程師Joe Armstrong設(shè)計(jì) Erlang 語(yǔ)言時(shí)始終將電信通訊的工作原理銘記在心:同時(shí)有百萬(wàn)用戶(hù)并行通訊,對(duì)故障事件幾乎是零容忍。對(duì)于如此巨量的并行通訊,其它語(yǔ)言基本可望而不可及——有的表面上看起來(lái)擅長(zhǎng)處理并發(fā),但它們卻不是原生的 " 多任務(wù)處理者 "。而 Erlang,跟它們形成鮮明對(duì)比,天生擅長(zhǎng)多線程或玩這種 " 雜技 " ——再增加一個(gè)旋轉(zhuǎn)的盤(pán)子?丟上來(lái)! " 這種語(yǔ)言非常富有表達(dá)性," 谷歌創(chuàng)新實(shí)驗(yàn)室的Igor Clark說(shuō)。" 你可以在一個(gè)很高的層面工作,用它的幾個(gè)關(guān)鍵概念可以做很多事情。" 從實(shí)際使用的角度,Erlang 最初非常適合在單個(gè)機(jī)器上跨多處理器處理高效的執(zhí)行命令。而如今,它已經(jīng)進(jìn)化成擅長(zhǎng)跨全球網(wǎng)絡(luò)服務(wù)器——也就是我們所說(shuō)的 " 云 " ——執(zhí)行海量命令。游戲,金融等任何像實(shí)時(shí)拍賣(mài)系統(tǒng)那樣對(duì)速度、穩(wěn)定性、吞吐量高要求的場(chǎng)景,Erlang 的這種云特征都是必不可少的。 同樣,對(duì)于程序員來(lái)說(shuō),Erlang 的吸引力也獨(dú)樹(shù)一幟的,它允許系統(tǒng)不停機(jī)的情況下進(jìn)行更新和 bug 修復(fù)。實(shí)時(shí)上,你可以修改系統(tǒng)屬性或更換文件而不引起系統(tǒng)的卡頓。Erlang 語(yǔ)言的這種特性是電信業(yè)的強(qiáng)制要求的結(jié)果:正如 DePue 說(shuō)的," 當(dāng)有人在打電話時(shí),你不可能因?yàn)橐?jí)系統(tǒng)而掛斷他們的電話。" 砸了電信的飯碗 Erlang 語(yǔ)言在 1998 年就開(kāi)源了,而如今的電信也卻沒(méi)有當(dāng)初那么大方。像 WhatsApp,微信,Line, 和其它應(yīng)用如雨后春筍,電信業(yè)一度依賴(lài)的短信費(fèi)用迅速被腐蝕。KPN,一家荷蘭公司,在目睹短信收益大幅下滑后試圖封殺這些應(yīng)用,但最終在法庭上輸了官司。 一些大型的運(yùn)營(yíng)商,例如 Vodafone,試圖建立自己的短信服務(wù)網(wǎng)絡(luò),但幾乎沒(méi)有成功的。它們現(xiàn)在的辦法就是對(duì)用戶(hù)的合同進(jìn)行修改,添加并標(biāo)明短信和數(shù)據(jù)各自的費(fèi)用。 就在這些電信公司忙著調(diào)整他們的收費(fèi)標(biāo)準(zhǔn)時(shí),WhatsApp 卻在專(zhuān)注做產(chǎn)品。它們的技術(shù)團(tuán)隊(duì)讓 WhatsApp 在規(guī)模和速度上的提升一次又一次的讓 Erlang 語(yǔ)言社區(qū)轟動(dòng),在短短的幾年里,每個(gè)服務(wù)器的連接數(shù)從 1 萬(wàn)躍升到 2 百萬(wàn)。 這些成績(jī)的實(shí)現(xiàn)全都?xì)w功于 Armstrong 打下的基礎(chǔ),他為愛(ài)立信量身定制的項(xiàng)目 AXD301,實(shí)現(xiàn)了 "9 個(gè) 9" 的可靠性 ( 99.9999999% ) 。而如今這些年輕的挑戰(zhàn)者們,卻將這些垂老的電信公司打的節(jié)節(jié)敗退。 Erlang 語(yǔ)言能實(shí)現(xiàn)超越嗎? 有著這樣驕人的成績(jī),你也許會(huì)認(rèn)為 Erlang 會(huì)被人們廣泛的使用。但現(xiàn)實(shí)情況要比你想象的復(fù)雜得多。 直到現(xiàn)在,Erlang 編程語(yǔ)言的開(kāi)發(fā)者社區(qū)規(guī)模依然很小,并且大部分聚集在歐洲。這種語(yǔ)言的語(yǔ)法是公認(rèn)的 " 奇特 "。如果你想分析復(fù)雜的數(shù)據(jù)或架設(shè)一個(gè)小網(wǎng)站,自然會(huì)選擇其它更好的語(yǔ)言和工具。而且,很多新出現(xiàn)的編程語(yǔ)言和變種都借鑒了 Erlang 語(yǔ)言的基本理念,從谷歌的Go語(yǔ)言到Docker語(yǔ)言,競(jìng)爭(zhēng)越來(lái)越激烈。 Elixir給 Erlang 帶來(lái)了希望——Armstrong 最近的大力贊揚(yáng)。Elixir 將 Erlang 的語(yǔ)法普通化,這能幫助這種語(yǔ)言模仿 Rails 帶紅 Ruby 語(yǔ)言的模式找到自己的出路。像Chicago Boss這樣的項(xiàng)目也在努力讓這種語(yǔ)言更用戶(hù)友好化。一旦有更多的社群在 Erlang 語(yǔ)言周?chē)奂藗儗?huì)發(fā)現(xiàn) OTP ( 開(kāi)放電信平臺(tái) ) 里更豐富的功能。 " 他們從開(kāi)發(fā)堅(jiān)固無(wú)比的軟件和程序庫(kù)中總結(jié)出來(lái)很多模式,我們可以很好的借用,"Clark 說(shuō)。 Erlang 語(yǔ)言否能流行起來(lái)的一個(gè)關(guān)鍵是便攜設(shè)備市場(chǎng),就是我們所說(shuō)的網(wǎng)絡(luò)設(shè)備。智能設(shè)備愛(ài)好者們已經(jīng)在嘗試在 MQTT ——一個(gè)輕量級(jí)的傳感器間消息傳輸協(xié)議——上使用 Erlang。如果能短信控制恒溫器,那用 WhatsApp 也一定能行。 該文章在 2014/3/24 23:51:44 編輯過(guò) |
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |