2015年9月15日 星期二

Erlang程式語言:擁有9 億用戶的WhatsApp,工程師只有50人?

擁有9 億用戶的WhatsApp,工程師只有50人?
撰文者:愛范兒 發表日期:2015/09/16
WhatsApp
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年代。它由瑞典Ericsson的工程師開發,用於高速的電話網路。
他們不是首先發明語言,然後搞懂它的用途,而是發明了一種解決特定問題的語言,」 英國的一位Erlang 專家Francesco Cesarini說,「當時的問題是大規模系統的擴展性和可靠性,那時候,電話網絡是唯一顯示出此類特性的系統。」從某種程度上說,WhatsApp就是替代了電話服務,因此,它也需要同樣的「擴展性和可靠性」。
當然,這種語言也有一些問題。一是懂Erlang的程序員比較少,二是它可能與現有系統不兼容。Facebook曾用Erlang編寫了Facebook Chat,但是,它後來又重寫了軟體,以便更好兼容公司的其它系統。對於WhatsApp 來說,這些似乎不是什麼問題。它不需要考慮與現有系統的兼容,而且,Erlang程序員稀少也沒什麼關係。
我們的招募策略是,找到最好的、最聰明的工程師。我們不會因為某個人了解Erlang就聘用他。」 Mahdavi 說,「我們希望,當工程師進入公司後,花上一周時間去熟悉這種語言,然後學會使用它。如果你聘用了聰明的人,他們能夠做到這一點。」
原文出處:愛范兒

沒有留言: