32 個工程師應付 5 億用戶,就靠這個 80 年代誕生的程式語言

2014 年科技界最轟動的消息,莫過於 Facebook 在 2 月 20 日宣布以 190 億美元的天價收購 WhatsApp(WhatsApp 全球用戶突破 5 億)。雖然許多人懷疑這筆斥資值得與否,但事實證明, WhatsApp 被 Facebook 收購後,其業務有很大的起色,而其活躍用戶的成長速度也非常驚人。

Facebook 創辦人 Zuckerberg 宣布當前的目標是讓 WhatsApp 的用戶量增加至 10 億。

  • WhatsApp 在被 Facebook 收購後,用戶量大幅成長

在被收購之前,WhatsAPP 用戶數為 4 億 5 千萬,活躍用戶只有 5 千萬,但在短短兩個月後, Zuckerberg 在 4 月 22 日宣布, WhatsApp 已經增加 5,000 萬名新用戶,邁向 5 億,其中 7 成為活躍用戶。

WhatsApp 執行長 Jan Koum 表示,俄羅斯、印度、墨西哥與巴西這四個國家,是 WhatsApp 的主要用戶成長來源。

  • 程式語言 Erlang WhatsApp 成功的關鍵

在訊息戰中, WhatsApp 目前依然穩坐通訊應用程式的龍頭寶座,而它所依靠的便是特別的程式語言 Erlang 。但 32 名工程師究竟如何應付 5 億的用戶呢?靠一個誕生於 80 年代,現在終於走到螢光幕前的程式語言 Erlang

對於其他程式語言的虎視眈眈,Erlang 要如何堅守岡位呢?

Erlang 是 25 年前由瑞典電信業巨頭 Ericsson (愛立信) 所開發的程式語言,而現在它在 WhatsApp 與 TigerText 這樣的通訊應用程式裡找到的自己的位置。

  • Facebook 也對 Erlang 讚譽有加

Facebook 在 2009 年也利用 Erlang 來開發 Facebook Chat 聊天功能,有趣的是,Facebook 在之前拒絕了 WhatsApp 創辦人 Brian Acton 的應徵。

Whisper(用戶匿名以圖搭文分享祕密的平台)首席技術長 Chad DePue 也說:

「有了 Erlang ,你可以開發出同時允許大量用戶連結的訊息傳輸應用程式,但不需要擔心訊息是如何訊息是如何傳輸的。你要擔心的是如何設計出一個好的應用程式」

Ericsson 工程師 Joe Armstrong  在設計 Erlang 時,將電信通訊的原理牢記在心:同時有好幾百萬個用戶在通訊中,停機時間是不可容許的。

對於如此大量的併行通訊,其他程式語言基本上是望塵莫及,有些程式語言表面上看似能趕得上速度,實際上卻無法一次處理大量的訊息。而相反的,這對 Erlang 來說根本就像叫數學博士算加減乘除一樣的容易。

  • 「雲端」是現代科技不可或缺的特徵

就實際的使用角度來看, Erlang 最初很適合在單機上跨多個處理器,處理高效的執行命令。而 Erlang 也隨著時間與技術的成熟而進化,如今,它已經能夠跨全球網路服務器,也就是雲端 (The Cloud) ,以執行海量命令。

而在遊戲、金融服務以及任何模仿實體拍賣系統等十分要求速度與穩定性的案例, Erlang 的雲端特徵都是不可或缺的。

對於工程師來說, Erlang 也非常具有吸引力,而這正是允許其系統在不停機的情況下進行 Bug 修復與更新的原因。Erlang 的這種特性是電信業強力要求的結果。就像 DePue 說的:「當你在通話中時,別人不可能因為要升級系統而掛你電話。」

  • 面對通訊應用程式,傳統文字簡訊難以逆轉勝

Erlang 在 1998 年就已經問世,但是到最近十年電信業者才深深的感受到其威脅性。WhatsApp、Line、WeChat 等等的通訊應用程式如雨後春筍般冒出,電信業依賴許久的付費簡訊逐漸走入歷史。 荷蘭通訊業 KPN 在簡訊收益大幅下滑後,試圖封殺這些應用程式,甚至還為此走上法庭,不過最終還是輸了官司。

一些像是 Vodafone 的大型流動通訊網絡公司,曾試圖創立自己的網路通訊服務,但幾乎都沒有成功。面對通訊應用程式的來勢洶洶,他們現在也只能修改用戶合約,制定新的簡訊收費模式。

就在電信公司忙著調整收費標準時, WhatsApp 則專注在產品本身。在技術團隊的幫助下, WhatsApp 大幅的提升其規模與速度,在短短幾年裡,每個服務器的連接數已經從 1 萬攀升至 2 百萬。而這些耀眼的成績全歸功於 Erlang 設計師 Armstrong 先前所打下的基礎,他為 Ericsson 設計的 AXD201 計畫,實現了 9 個 9 的可靠性 (99.9999999%)。

這些年經挑戰者的出現,讓電信業的未來響起了警鐘。

  • 即使有傲人的成績, Erlang 也得面對新競爭者

照理來說,憑藉著如此傲人的成績, Erlang 應該要被人們廣泛的使用,不過,現實情況可要比你所想的還複雜。直到現在, Erlang 的開發者社區規模依然很小,而且大部分都聚集在歐洲。 Erlang 的語法是公認的奇特,如果你需要分析複雜的數據或架設一個簡單的網頁應用程式,你自然會選擇其他更好用的工具。

而且,有很多新的程式語言也都用運了 Erlang 的理念,程式語言的競爭越來越激烈。不過, 最近受 Armstrong 讚揚的 Elixit 替 Erlang 帶來了希望。

Elixir 將 Erlang 的語法普通化,就像當初 Rails 利用程式語言 Ruby 一樣,而現在 Rails on Ruby 成了廣為人知的 Web 框架。

從 Rails 那獲得靈感的 Chicago Boss ,也是一個用 Erlang 編寫的服務器端框架,現在正努力讓程式語言更人性化。

一旦有更多的社群網站使用 Erlang,人們就會發現 OTP (Open Telecom Platform,開放電信平台) 能夠彌補在大型程式專案平台 GitHub 上的種種限制,以及 Erlang 更豐富多元的功能。能讓 Eralng 流行的關鍵正是行動裝置,也就是我們說的網路設備。另外,智慧型裝置的愛好者已經在嘗試在 MQTT (傳感器之間傳輸訊息的輕量級協議) 上使用 Erlang 了。

如果我們能用簡訊控制恆溫器,那用 WhatAapp 也一定可以,對吧?

延伸閱讀:

Google 工程師:我設計這套程式語言,目標是取代 C 語言

程式語言進化鏈的頂端:為什麼說蘋果的 Swift 正在顛覆整個網路生態?

想挖出 Big Data 的秘密, 這 10 個程式語言你不能不懂

(資料來源:Fast Company ;圖片來源:webarchivingbucket.com

點關鍵字看更多相關文章: