本月初,WhatsApp的CEO Jan Koum在他的Facebook上宣布,公司的實時通訊服務已經擁有9億用戶。之後Facebook CEO Mark Zuckerberg也立刻連發兩條回復他,一條說 「祝賀,」另一條的配圖是WhatsApp CEO在編輯那條 「宣布用戶突破9億」的狀態時的樣子,並寫道 「這就是你編寫那條狀態時的抓拍」,Zuckerberg寫道。

WhatsApp目前歸Facebook所有,在WhatsApp以初創公司之姿面世剛滿一年後,Zuckerberg和他的公司便出資190億美元將其買下。這樣一來,Facebook就運營着互聯網上最火的三個app。作為主業的社交網絡業務目前在世界範圍內擁有15億用戶,而Facebook Messenger,從Facebook中拆分出來的即時通訊業務也擁有7億用戶。但是Koun宣布的里程碑似的9億用戶的榮耀是屬於WhatsApp的,而不是作為一個Facebook生產線上的一個產品。

WhatsApp的有趣之處在於它實現了小團隊打造大型服務。當它被Facebook收購時,它是一個擁有35名工程師和4.5億用戶的軟件。如今,當它已經把這個用戶數翻倍,它也只擁有50名工程師而已,並且這個小團隊幾乎全部在依靠自己的力量來運作這個產品。當下,有很多互聯網服務都在快速地向百萬用戶目標進發,WhatsApp至少從某種程度上向它們展示了一種方法。

WhatsApp從不在技術和其他運營工作上發表太多言論,但是昨天,在加利福尼亞州聖何塞的一個會上,WhatsApp的軟件工程師上台對公司的一些非同尋常的理念做了簡短的討論。其中一個就說公司使用的編程語言是Erlang。雖然Erlang在編程界並不是很受歡迎,但它擅長處理海量用戶之間通訊任務,並且它允許工程師快速配置新代碼。但是Mahdavi說,和技術同樣重要的還有態度。

Mahdavi兩年前加入WhatsApp,那時作為初創企業的WhatsApp已經處於穩定的運營狀態,Mahdavi發現他們使用的工程方法是他從未見過的。因為他們在使用Erlang作為編程語言,並使用一款名為FreeBSD的操作系統,這使他們的系統變得很簡單。 「這是一個完全不同的搭建大規模基礎架構的方法,」他在周一時候說。 「能夠了解到有這樣的簡單方法來解決問題真是大開眼界。」

並行性編程語言的利用

WhatsApp使用Erlang只是推動此類並行性(同時跑多個程序)編程語言前進的一個側面。因為互聯網服務涉及得人越多越需要多任務處理,這時這類編程語言就顯得格外具有吸引力了。

Facebook一直在使用一種叫Haskell的編程語言搭建反垃圾郵件系統。Haskell最早形成於80年代晚期的一個學術實驗室,但到如今仍未流行起來。Facebook選擇它來阻截垃圾郵件是因為它很擅長於並行任務處理,也因為它可以讓程序員對任務進行快速處理。同時,谷歌和Mozilla——火狐瀏覽器製造商正在合力開發一種擁有類似功能的語言,為名Go and Rust。

正如Haskell一樣,Erlang也是一個80年代的產物。Erlang是愛立信公司的工程師們為了搭建高速電話網絡時而創建的語言。 「Erlang是為了解決一個特定問題才發明的語言,而不是為了發明而發明,之後才發現了它的用途,」Erlang的專家Francesco Cesarini說。 「當時那個特定的問題就是需要強大的可拓展性和可靠性。電話網絡是當時唯一能夠展現這些屬性的系統。」

Erlang一直都被編程領域邊緣化,但是在WhatsApp和其他互聯網公司,包括微信和Whisper,它成功找到了像之前電話網絡時期一樣的存在感。實際上,WhatsApp就是手機短訊的替代服務。它也對 「可擴展性和可靠性」有着極高要求。

另外,Erlang還讓程序員辦公更高效,這也是現代軟件開發必不可少的部分。它提供了一種方法,可以在程序還在運行的情況下,快速編入新的代碼。在這個時刻變化的時代,這個特性是無比有用的。

保持簡單,保持聰明

這個語言也有它的缺點。只有相對較少的程序員了解Erlang,它也不會百分百與如今互聯網公司的代碼相匹配。Facebook用Erlang語言開發了他們自己的聊天app,但最終他們還是重新用其他語言進行再次開發,以適配其他基礎架構。 「Erlang是我們擁有的一座島的話,我們很難建造出足夠多的船可以停靠到島上。」Facebook工程副總裁Jay Parikh說。

當然,WhatsApp並不一定要用這種方法與已有基礎架構進行整合。Mahdavi相信這些問題對於Erlang的程序員來說並不是問題。「我們的招聘戰略是去找最好最聰明的工程師。我們並沒有對Erlang有特別要求,因為工程師都知道Erlang,」Mahdavi在周一時候說。「我們希望工程師加入我們之後,用最初的一周去熟悉這種語言,並學習使用操作環境。如果你雇了聰明的人,他們自然會勝任的。」

從某種程度上來說,公司能夠成功也因為雇傭了這些適應力強的工程師。在被問到公司成功的秘訣是,Mahdavi如此簡潔地回答。但這的確是關鍵。「最重要的是要非常專註到你需要去做的事情上,」他說,「不被其他的事情和其他的技術分心,即使是辦公的會議也不行。」

在WhatsApp,工程師基本從來不參加會議。是的,他們就只有幾十人,但這就是關鍵之所在。

虎嗅注:本文來自Wired文章《Why WhatsApp Only Needs 50 Engineers for Its 900M Users | WIRED》,作者CADE METZ,虎嗅編譯


 WhatsApp目前擁有9億用戶,但為何只需要50名工程師?