WhatsApp 是全球最受歡迎的通訊軟體之一,使用者數量達到 9 億。在 WhatsApp 成長過程中,最讓人驚奇是事情是,這件壯舉是由一個小團隊完成的。在公司被 Facebook 收購之前,它已擁有 4.5 億用戶,而公司的工程師只有 35 名。如今,它的工程師數量也只是增加到了 50 名。
WhatsApp 很少談論關於他們技術方面的事情。不過,在最近的一次科技聚會上,WhatsApp 的軟體工程師 Jamshid Mahdavi 談到了公司的一些不尋常做法。
比如說,公司在構建自己的網路服務時,使用了一種不常見的程式設計語言:Erlang。這種程式語言並沒有被很多程式師採用,但是,它非常適合 WhatsApp 的服務,適用於大量使用者進行交流,而且,它讓工程師快速部署新的程式碼。
Mahdavi 說,比起技術來說,WhatsApp更看重的是態度問題。
據 Wired 網站報導,Mahdavi 於兩年前加入 WhatsApp。他發現,公司對待技術的態度是他未曾見過的。一方面,這是因為公司使用了 Erlang 和 FreeBSD 作業系統,另一方面,公司努力維持一種非常簡單的運作方式。
「在構建大規模的架構上,這是一種完全不同的方法,」 他說,「以極簡主義的方式,只解決那些急需解決的問題,這讓我大開眼界。」
WhatsApp 使用 Erlang 的原因是,它擅於處理並行的任務。當網路服務覆蓋到更多人,必然需要同時處理人們的各種需求,於是,此種程式語言變得很有吸引力。在開發反垃圾郵件系統時,Facebook 就使用過另一種小眾語言 Haskell。與 Haskell 相同,Erlang 也是誕生於 80 年代。它由瑞典易立信的工程師開發,用於高速的電話網路。
「他們不是首先發明語言,然後搞懂它的用途,而是發明了一種解決特定問題的語言,」 英國的一位 Erlang 專家 Francesco Cesarini 說,「當時的問題是大規模系統的擴展性和可靠性,那時候,電話網路是唯一需要解決此類問題的系統。」
以現代的需求來說,WhatsApp 就是替代了當年的電話服務,因此,它也需要同樣的「擴展性和可靠性」。
當然,這種程式語言也有一些問題。一是懂 Erlang 的程式師比較少,二是它可能與現有系統不相容。
Facebook 曾用 Erlang 編寫了 Facebook Chat,但是,他們後來又打掉重練,重寫了軟體,目的是更相容於公司的其它系統。對於 WhatsApp 來說,這些似乎不是什麼問題。它不需要考慮與現有系統的相容,而且,Erlang 程式師稀少也沒什麼關係,因為他們需要的工程師人數並不多。
「我們的招聘策略是,找到最好的、最聰明的工程師。我們不會因為某個人瞭解 Erlang 就聘用他 。」 Mahdavi 說,「我們希望,當工程師進入公司後,花上一周時間去熟悉這種語言,然後學會使用它。如果你雇傭了聰明的人,他們能夠做到這一點。」
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!