3
本月初,WhatsApp首席執(zhí)行官Jan Koum在其個(gè)人Facebook主頁(yè)上宣布,該公司的即時(shí)通信服務(wù)用戶數(shù)量已經(jīng)突破了9億。很快,F(xiàn)acebook CEO馬克·扎克伯格便在自己主頁(yè)上做了跟進(jìn),并發(fā)了兩個(gè)帖子,一個(gè)對(duì)WhatsApp表示了祝賀,另一個(gè)是小扎上傳的一張照片,照片里的人就是Koum本人,他正拿著自己的智能手機(jī)在Facebook上面發(fā)公司獲得9億用戶里程碑的帖子。“我把你更新Facebook的照片曬出來(lái)啦?!痹瞬駥?xiě)道。
一年之前,Facebook花190億美元收購(gòu)了WhatsApp,這意味著如今的Facebook擁有著互聯(lián)網(wǎng)上最火爆的三款A(yù)pp應(yīng)用:Facebook(他們的原生社交網(wǎng)絡(luò)服務(wù),全球用戶數(shù)量超過(guò)150億人);Facebook Messenger(Facebook旗下即時(shí)通信服務(wù)“副產(chǎn)品”,用戶量大約有7億)以及WhatsApp。當(dāng)然WhatsApp的成就是自己實(shí)實(shí)在在創(chuàng)造出來(lái)的,和Facebook還真沒(méi)有太大關(guān)系。
事實(shí)上,WhatsApp讓人覺(jué)得最牛逼的地方,是他們的團(tuán)隊(duì)規(guī)模并不大。當(dāng)初他們被Facebook收購(gòu)時(shí),公司只有35名工程師,用戶數(shù)量剛剛超過(guò)4.5億。然而即使現(xiàn)在他們用戶數(shù)量突破了9億,旗下工程師數(shù)量也不過(guò)就50名,對(duì)于很多企業(yè)來(lái)說(shuō),這簡(jiǎn)直是件不可思議的事情,那么一點(diǎn)兒?jiǎn)T工,靠著一己之力卻實(shí)現(xiàn)了如此壯舉。如今,很多互聯(lián)網(wǎng)服務(wù)都在快速擴(kuò)大自己的用戶數(shù)量,或許WhatsApp的經(jīng)歷能讓我們有所借鑒,至少可以部分借鑒。
關(guān)于工程師的工作,以及一些和運(yùn)營(yíng)相關(guān)的事宜,WhatsApp并沒(méi)有透露太多。不過(guò)在昨天,WhatsApp軟件工程師Jamshid Mahdavi出席了在加州圣何塞市舉辦的一個(gè)活動(dòng),簡(jiǎn)要地談到了WhatsApp公司一些與眾不同的工作方法。實(shí)際上,該公司使用了一個(gè)名為Erlang的編程語(yǔ)言來(lái)構(gòu)建服務(wù),這個(gè)編程語(yǔ)言在程序員社區(qū)里并不是太受歡迎,但是卻非常適合構(gòu)建有海量用戶的通信服務(wù),WhatsApp工程師可以快速部署自己的新代碼。不過(guò),Mahdavi表示,在科技圈里最重要的其實(shí)還是態(tài)度。
Mahdavi是在兩年前加入到WhatsApp公司工作的,那時(shí)WhatsApp已經(jīng)是一款非常受歡迎的即時(shí)通信應(yīng)用了,但是Mahdavi發(fā)現(xiàn),這家公司和之前他所見(jiàn)過(guò)的公司完全不同,除了他們使用Erlang編程語(yǔ)言和FreeBSD計(jì)算機(jī)操作系統(tǒng)之外,WhatsApp的公司運(yùn)營(yíng)方式是異常簡(jiǎn)單的?!霸跇?gòu)建如何大規(guī)模的基礎(chǔ)架構(gòu)下,WhatsApp采用了完全不同的方法,”他說(shuō)道,“WhatsApp只去解決最需要解決的問(wèn)題,而且使用最簡(jiǎn)單的方式去處理,這讓我大開(kāi)眼界!”
并行編程
WhatsApp之所以選擇使用Erlang編程語(yǔ)言,很大程度上是因?yàn)樗哂袠O強(qiáng)的并發(fā)性,可以同時(shí)處理很多進(jìn)程。作為一個(gè)需要聯(lián)系海量互聯(lián)網(wǎng)用戶的即時(shí)通信應(yīng)用,這種編程語(yǔ)言顯然非常有吸引力。Facebook也采用了類(lèi)似的方法,舉個(gè)例子,在開(kāi)發(fā)全新的反垃圾系統(tǒng)時(shí),F(xiàn)acebook就使用了一個(gè)名為Haskell的編程語(yǔ)言,用于識(shí)別惡意信息和其他用戶不想要的信息。Haskell其實(shí)是一種學(xué)術(shù)應(yīng)用編程語(yǔ)言,出現(xiàn)于上世紀(jì)80年代,它并沒(méi)有被廣泛使用。不過(guò),恰恰是因?yàn)檫@個(gè)編程語(yǔ)言可以支持處理并發(fā)任務(wù),并且可以讓程序員快速追蹤緊急任務(wù),最終得到了Facebook的青睞。與此同時(shí),谷歌和Mozilla(火狐瀏覽器開(kāi)發(fā)公司)兩家公司也開(kāi)始使用一些小眾編程語(yǔ)言,比如Go和Rust,并且都嘗到了甜頭。
和Haskell很相似,Erlang是上世紀(jì)八十年代的產(chǎn)品。這款編程語(yǔ)言是由愛(ài)立信的工程師開(kāi)發(fā)的,起初主要用于電信公司的硬件和軟件設(shè)計(jì)工作,之后又用于構(gòu)建高速電話網(wǎng)絡(luò)。“過(guò)去人們發(fā)明一種編程語(yǔ)言,第一反應(yīng)就是希望搞明白利用這個(gè)編程語(yǔ)言可以做哪些工作,但是那些小眾編程語(yǔ)言則有所不同,他們是為了專門(mén)解決某個(gè)問(wèn)題而設(shè)計(jì)的,”Francesco Cesarini說(shuō)道,他是Erlang編程語(yǔ)言專家,目前居住在英國(guó),“在即時(shí)通信應(yīng)用領(lǐng)域,最大的問(wèn)題就是要解決規(guī)模性和穩(wěn)定性,電話網(wǎng)絡(luò)是當(dāng)時(shí)唯一能兼具這兩種屬性的系統(tǒng)。”
Erlang依然保留了現(xiàn)代編程的思路,不過(guò)在WhatsApp和其他互聯(lián)網(wǎng)公司(包括微信和Whisper),他們開(kāi)發(fā)的新應(yīng)用程序其實(shí)和電話網(wǎng)絡(luò)有些相似?;旧?,WhatsApp取代了手機(jī)短信服務(wù),因此它也必須要兼顧上文提到的“規(guī)模性和穩(wěn)定性”兩大通信屬性。
不僅如此,Erlang編程語(yǔ)言可以讓程序員高速工作,這是現(xiàn)代軟件開(kāi)發(fā)所必須具備的一個(gè)要素。Erlang可以在應(yīng)用程序上快速部署新代碼,甚至在應(yīng)用程序運(yùn)行時(shí)也可以部署,僅僅從這個(gè)角度來(lái)看,它就比其他編程語(yǔ)言更具優(yōu)勢(shì)。
保持簡(jiǎn)單、智能
任何一種語(yǔ)言都會(huì)存在缺點(diǎn),Erlang也不例外。首先,知道Erlang這款編程語(yǔ)言的程序員屈指可數(shù);其次,相比于如今絕大多數(shù)互聯(lián)網(wǎng)公司在用的編程語(yǔ)言,使用Erlang開(kāi)發(fā)的應(yīng)用程序可能會(huì)存在兼容性問(wèn)題。Facebook使用了Erlang語(yǔ)言開(kāi)發(fā)了其原生Facebook Chat應(yīng)用,但是后來(lái)不得不重新開(kāi)發(fā),因?yàn)檫@款應(yīng)用根本無(wú)法兼容其他系統(tǒng)基礎(chǔ)架構(gòu)?!癊rlang就像是編程語(yǔ)言世界里的一座小孤島,而且你也無(wú)法構(gòu)建足夠多的船開(kāi)到這座小島上,通俗的說(shuō),它的兼容性是最大問(wèn)題,”Facebook公司工程副總裁Jay Rarikh說(shuō)道。
當(dāng)然,WhatsApp沒(méi)有必要去整合現(xiàn)有的基礎(chǔ)架構(gòu)。而且,Mahdavi相信,Erlang程序員雖然數(shù)量不多,但根本不是個(gè)問(wèn)題。Mahdavi說(shuō):“我們?cè)谡衅傅臅r(shí)候,根本不會(huì)在乎應(yīng)聘者是否會(huì)Erlang語(yǔ)言,我們的目標(biāo)非常簡(jiǎn)單,就是要找最好最聰明的工程師。我們希望加入到我們公司的工程師在入職之后,可以花上一個(gè)禮拜時(shí)間先熟悉下這款編程語(yǔ)言,然后了解下它的使用環(huán)境。如果你招募的工程師足夠聰明,那么學(xué)習(xí)掌握這個(gè)編程語(yǔ)言絕對(duì)是小菜一碟?!?/p>
WhatsApp招募的工程師都具有很強(qiáng)的適應(yīng)能力,而且在很多方面都能做到如魚(yú)得水。有人問(wèn)Mahdavi,WhatsApp到底有沒(méi)有什么秘密,他的反應(yīng)似乎太過(guò)簡(jiǎn)單。但事實(shí)真的不復(fù)雜,他說(shuō):“在WhatsApp,最重要的就是要非常專注于你需要做的事情。有很多事情會(huì)導(dǎo)致你分心,也會(huì)占用你很多時(shí)間,比如參加某些活動(dòng),了解某些技術(shù),以及一些類(lèi)似會(huì)議的辦公日常工作?!?/p>
在WhatsApp,員工根本不會(huì)開(kāi)會(huì),當(dāng)然,總共就那么幾個(gè)人也沒(méi)有開(kāi)會(huì)的必要;但老實(shí)說(shuō),這的確也是他們的優(yōu)勢(shì)。
via Wired
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。