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