网站首页 > 技术教程 正文
WhatsApp 是全球最受欢迎的聊天软件,用户数量达到 9 亿。在 WhatsApp 成长过程中,最让人惊奇是事情是,这件壮举是由一个小团队完成的。在公司被 Facebook 收购之前,它已拥有 4.5 亿用户,而公司的工程师只有 35 名。如今,它的工程师数量也只是增加到了 50 名。
WhatsApp 很少谈论技术方面的事情。不过,在最近的一次科技聚会上,WhatsApp 的软件工程师 Jamshid Mahdavi 谈到了公司的一些不寻常做法。比如,公司在构建自己的网络服务时,使用了一种不常见的编程语言:Erlang。这种语言并没有被许多程序员采用,但是,它非常适合 WhatsApp 的服务,一种大量用户进行交流的服务,而且,它让工程师快速部署新的代码。Mahdavi 说,技术只是一方面,更为重要的是态度问题。
据 Wired 网站报道,Mahdavi 于两年前加入 WhatsApp。他发现,公司对待技术的态度是他未曾见过的。一方面,这是因为公司使用了 Erlang 和 FreeBSD 操作系统,另一方面,公司努力维持一种非常简单的运作方式。“在构建大规模的架构上,这是一种完全不同的方法,” 他说,“以极简主义的方式,只解决那些急需解决的问题,这让我大开眼界。”
WhatsApp 使用 Erlang 的原因是,它擅于处理并行的任务。当互联网服务覆盖到更多人群,必然需要同时处理人们的各种需求,于是,此类语言变得很有吸引力。在开发反垃圾邮件系统时,Facebook 就使用过另一种小众语言 Haskell。与 Haskell 相同,Erlang 也是诞生于 80 年代。它由瑞典爱立信的工程师开发,用于高速的电话网络。
“他们不是首先发明语言,然后搞懂它的用途,而是发明了一种解决特定问题的语言,” 英国的一位 Erlang 专家 Francesco Cesarini 说,“当时的问题是大规模系统的扩展性和可靠性,那时候,电话网络是唯一显示出此类特性的系统。” 从某种程度上说,WhatsApp 就是替代了电话服务,因此,它也需要同样的“扩展性和可靠性”。
当然,这种语言也有一些问题。一是懂 Erlang 的程序员比较少,二是它可能与现有系统不兼容。Facebook 曾用 Erlang 编写了 Facebook Chat,但是,它后来又重写了软件,以便更好兼容公司的其它系统。对于 WhatsApp 来说,这些似乎不是什么问题。它不需要考虑与现有系统的兼容,而且,Erlang 程序员稀少也没什么关系。
“我们的招聘策略是,找到最好的、最聪明的工程师。我们不会因为某个人了解 Erlang 就聘用他 。” Mahdavi 说,“我们希望,当工程师进入公司后,花上一周时间去熟悉这种语言,然后学会使用它。如果你雇佣了聪明的人,他们能够做到这一点。”
图片来自 tiempo
猜你喜欢
- 2024-12-28 ChatGPT,将元宇宙拍在沙滩上? 元宇宙cso
- 2024-12-28 WhatsApp Facebook line实现实时翻译 自动翻译 AI翻译 边聊边译
- 2024-12-28 Facebook F8 开发者大会将发布聊天机器人平台
- 2024-12-28 累了吧?看看别人是如何简化生活的!
- 2024-12-28 像真人一样聊天,ChatGPT向AI助理更进一步|新京报快评
- 2024-12-28 如何利用Facebook Messenger建立联络,让用户找到你?
- 2024-12-28 微软Tay没玩够?社交巨头Facebook聊天机器人横空出世
- 2024-12-28 拥有9 亿用户的WhatsApp,工程师只有50人?
- 2024-12-28 Facebook Messenger 将增加语音聊天翻译功能
- 2024-12-28 Facebook涉足手机聊天领域 推出Facebook版“微信”
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)