资讯 新鲜
此为临时链接,仅用于文章预览,将在时失效

为何用户9亿的WhatsApp只需要50位工程师?

作者:天诺
2015/09/17 09:59

为何用户9亿的WhatsApp只需要50位工程师?

本月初,WhatsApp首席执行官Jan Koum在其个人Facebook主页上宣布,该公司的即时通信服务用户数量已经突破了9亿。很快,Facebook CEO马克·扎克伯格便在自己主页上做了跟进,并发了两个帖子,一个对WhatsApp表示了祝贺,另一个是小扎上传的一张照片,照片里的人就是Koum本人,他正拿着自己的智能手机在Facebook上面发公司获得9亿用户里程碑的帖子。“我把你更新Facebook的照片晒出来啦。”扎克伯格写道。

一年之前,Facebook花190亿美元收购了WhatsApp,这意味着如今的Facebook拥有着互联网上最火爆的三款App应用:Facebook(他们的原生社交网络服务,全球用户数量超过150亿人);Facebook Messenger(Facebook旗下即时通信服务“副产品”,用户量大约有7亿)以及WhatsApp。当然WhatsApp的成就是自己实实在在创造出来的,和Facebook还真没有太大关系。

事实上,WhatsApp让人觉得最牛逼的地方,是他们的团队规模并不大。当初他们被Facebook收购时,公司只有35名工程师,用户数量刚刚超过4.5亿。然而即使现在他们用户数量突破了9亿,旗下工程师数量也不过就50名,对于很多企业来说,这简直是件不可思议的事情,那么一点儿员工,靠着一己之力却实现了如此壮举。如今,很多互联网服务都在快速扩大自己的用户数量,或许WhatsApp的经历能让我们有所借鉴,至少可以部分借鉴。

关于工程师的工作,以及一些和运营相关的事宜,WhatsApp并没有透露太多。不过在昨天,WhatsApp软件工程师Jamshid Mahdavi出席了在加州圣何塞市举办的一个活动,简要地谈到了WhatsApp公司一些与众不同的工作方法。实际上,该公司使用了一个名为Erlang的编程语言来构建服务,这个编程语言在程序员社区里并不是太受欢迎,但是却非常适合构建有海量用户的通信服务,WhatsApp工程师可以快速部署自己的新代码。不过,Mahdavi表示,在科技圈里最重要的其实还是态度。

Mahdavi是在两年前加入到WhatsApp公司工作的,那时WhatsApp已经是一款非常受欢迎的即时通信应用了,但是Mahdavi发现,这家公司和之前他所见过的公司完全不同,除了他们使用Erlang编程语言和FreeBSD计算机操作系统之外,WhatsApp的公司运营方式是异常简单的。“在构建如何大规模的基础架构下,WhatsApp采用了完全不同的方法,”他说道,“WhatsApp只去解决最需要解决的问题,而且使用最简单的方式去处理,这让我大开眼界!”

并行编程

WhatsApp之所以选择使用Erlang编程语言,很大程度上是因为它具有极强的并发性,可以同时处理很多进程。作为一个需要联系海量互联网用户的即时通信应用,这种编程语言显然非常有吸引力。Facebook也采用了类似的方法,举个例子,在开发全新的反垃圾系统时,Facebook就使用了一个名为Haskell的编程语言,用于识别恶意信息和其他用户不想要的信息。Haskell其实是一种学术应用编程语言,出现于上世纪80年代,它并没有被广泛使用。不过,恰恰是因为这个编程语言可以支持处理并发任务,并且可以让程序员快速追踪紧急任务,最终得到了Facebook的青睐。与此同时,谷歌和Mozilla(火狐浏览器开发公司)两家公司也开始使用一些小众编程语言,比如Go和Rust,并且都尝到了甜头。

为何用户9亿的WhatsApp只需要50位工程师?

和Haskell很相似,Erlang是上世纪八十年代的产品。这款编程语言是由爱立信的工程师开发的,起初主要用于电信公司的硬件和软件设计工作,之后又用于构建高速电话网络。“过去人们发明一种编程语言,第一反应就是希望搞明白利用这个编程语言可以做哪些工作,但是那些小众编程语言则有所不同,他们是为了专门解决某个问题而设计的,”Francesco Cesarini说道,他是Erlang编程语言专家,目前居住在英国,“在即时通信应用领域,最大的问题就是要解决规模性和稳定性,电话网络是当时唯一能兼具这两种属性的系统。”

Erlang依然保留了现代编程的思路,不过在WhatsApp和其他互联网公司(包括微信和Whisper),他们开发的新应用程序其实和电话网络有些相似。基本上,WhatsApp取代了手机短信服务,因此它也必须要兼顾上文提到的“规模性和稳定性”两大通信属性。

不仅如此,Erlang编程语言可以让程序员高速工作,这是现代软件开发所必须具备的一个要素。Erlang可以在应用程序上快速部署新代码,甚至在应用程序运行时也可以部署,仅仅从这个角度来看,它就比其他编程语言更具优势。

保持简单、智能

任何一种语言都会存在缺点,Erlang也不例外。首先,知道Erlang这款编程语言的程序员屈指可数;其次,相比于如今绝大多数互联网公司在用的编程语言,使用Erlang开发的应用程序可能会存在兼容性问题。Facebook使用了Erlang语言开发了其原生Facebook Chat应用,但是后来不得不重新开发,因为这款应用根本无法兼容其他系统基础架构。“Erlang就像是编程语言世界里的一座小孤岛,而且你也无法构建足够多的船开到这座小岛上,通俗的说,它的兼容性是最大问题,”Facebook公司工程副总裁Jay Rarikh说道。

当然,WhatsApp没有必要去整合现有的基础架构。而且,Mahdavi相信,Erlang程序员虽然数量不多,但根本不是个问题。Mahdavi说:“我们在招聘的时候,根本不会在乎应聘者是否会Erlang语言,我们的目标非常简单,就是要找最好最聪明的工程师。我们希望加入到我们公司的工程师在入职之后,可以花上一个礼拜时间先熟悉下这款编程语言,然后了解下它的使用环境。如果你招募的工程师足够聪明,那么学习掌握这个编程语言绝对是小菜一碟。”

WhatsApp招募的工程师都具有很强的适应能力,而且在很多方面都能做到如鱼得水。有人问Mahdavi,WhatsApp到底有没有什么秘密,他的反应似乎太过简单。但事实真的不复杂,他说:“在WhatsApp,最重要的就是要非常专注于你需要做的事情。有很多事情会导致你分心,也会占用你很多时间,比如参加某些活动,了解某些技术,以及一些类似会议的办公日常工作。”

在WhatsApp,员工根本不会开会,当然,总共就那么几个人也没有开会的必要;但老实说,这的确也是他们的优势。

via Wired

长按图片保存图片,分享给好友或朋友圈

为何用户9亿的WhatsApp只需要50位工程师?

扫码查看文章

正在生成分享图...

取消
相关文章