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