本月初,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
,工程师基本从来不参加会议。是的,他们就只有几十人,但这就是关键之所在。