WhatsApp 是全球最受歡迎的聊天軟體,用戶數量達到 9 億。在 WhatsApp 成長過程中,最讓人驚奇是事情是,這件壯舉是由一個小團隊完成的。在公司被 Facebook 收購之前,它已擁有 4.5 億用戶,而公司的工程師只有 35 名。如今,它的工程師數量也只是增加到了 50 名。
WhatsApp 很少談論技術方面的事情。不過,在最近的一次科技聚會上,WhatsApp 的軟體工程師 Jamshid Mahdavi 談到了公司的一些不尋常做法。比如,公司在構建自己的網絡服務時,使用了一種不常見的程式語言:Erlang。這種語言並沒有被許多工程師採用,但是,它非常適合 WhatsApp 的服務,一種大量用戶進行交流的服務,而且,它讓工程師快速部署新的代碼。Mahdavi 說,技術只是一方面,更為重要的是態度問題。
據《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 說,「我們希望,當工程師進入公司後,花上一周時間去熟悉這種語言,然後學會使用它。如果你僱傭了聰明的人,他們能夠做到這一點。」
(本文轉載自合作夥伴《ifanr》;未經授權,不得轉載)