WhatsApp是全球最受歡迎的聊天軟件,用戶(hù)數(shù)量達(dá)到9億。在WhatsApp成長(zhǎng)過(guò)程中,最讓人驚奇是事情是,這件壯舉是由一個(gè)小團(tuán)隊(duì)完成的。在公司被Facebook收購(gòu)之前,它已擁有4.5億用戶(hù),而公司的工程師只有35名。如今,它的工程師數(shù)量也只是增加到了50名。
WhatsApp很少談?wù)摷夹g(shù)方面的事情。不過(guò),在最近的一次科技聚會(huì)上,WhatsApp的軟件工程師Jamshid Mahdavi談到了公司的一些不尋常做法。比如,公司在構(gòu)建自己的網(wǎng)絡(luò)服務(wù)時(shí),使用了一種不常見(jiàn)的編程語(yǔ)言:Erlang。這種語(yǔ)言并沒(méi)有被許多程序員采用,但是,它非常適合WhatsApp的服務(wù),一種大量用戶(hù)進(jìn)行交流的服務(wù),而且,它讓工程師快速部署新的代碼。Mahdavi說(shuō),技術(shù)只是一方面,更為重要的是態(tài)度問(wèn)題。
據(jù) Wired網(wǎng)站報(bào)道,Mahdavi于兩年前加入WhatsApp。他發(fā)現(xiàn),公司對(duì)待技術(shù)的態(tài)度是他未曾見(jiàn)過(guò)的。一方面,這是因?yàn)楣臼褂昧薊rlang和FreeBSD操作系統(tǒng),另一方面,公司努力維持一種非常簡(jiǎn)單的運(yùn)作方式。“在構(gòu)建大規(guī)模的架構(gòu)上,這是一種完全不同的方法,”他說(shuō),“以極簡(jiǎn)主義的方式,只解決那些急需解決的問(wèn)題,這讓我大開(kāi)眼界。”
WhatsApp使用Erlang的原因是,它擅于處理并行的任務(wù)。當(dāng)互聯(lián)網(wǎng)服務(wù)覆蓋到更多人群,必然需要同時(shí)處理人們的各種需求,于是,此類(lèi)語(yǔ)言變得很有吸引力。在開(kāi)發(fā)反垃圾郵件系統(tǒng)時(shí),F(xiàn)acebook就使用過(guò)另一種小眾語(yǔ)言Haskell。與Haskell相同,Erlang也是誕生于80年代。它由瑞典愛(ài)立信的工程師開(kāi)發(fā),用于高速的電話網(wǎng)絡(luò)。
“他們不是首先發(fā)明語(yǔ)言,然后搞懂它的用途,而是發(fā)明了一種解決特定問(wèn)題的語(yǔ)言,”英國(guó)的一位Erlang專(zhuān)家Francesco Cesarini說(shuō),“當(dāng)時(shí)的問(wèn)題是大規(guī)模系統(tǒng)的擴(kuò)展性和可靠性,那時(shí)候,電話網(wǎng)絡(luò)是唯一顯示出此類(lèi)特性的系統(tǒng)。”從某種程度上說(shuō),WhatsApp就是替代了電話服務(wù),因此,它也需要同樣的“擴(kuò)展性和可靠性”。
當(dāng)然,這種語(yǔ)言也有一些問(wèn)題。一是懂Erlang的程序員比較少,二是它可能與現(xiàn)有系統(tǒng)不兼容。Facebook曾用Erlang編寫(xiě)了Facebook Chat,但是,它后來(lái)又重寫(xiě)了軟件,以便更好兼容公司的其它系統(tǒng)。對(duì)于WhatsApp來(lái)說(shuō),這些似乎不是什么問(wèn)題。它不需要考慮與現(xiàn)有系統(tǒng)的兼容,而且,Erlang程序員稀少也沒(méi)什么關(guān)系。
“我們的招聘策略是,找到最好的、最聰明的工程師。我們不會(huì)因?yàn)槟硞€(gè)人了解Erlang就聘用他。”Mahdavi說(shuō),“我們希望,當(dāng)工程師進(jìn)入公司后,花上一周時(shí)間去熟悉這種語(yǔ)言,然后學(xué)會(huì)使用它。如果你雇傭了聰明的人,他們能夠做到這一點(diǎn)。”