190亿美元的WhatsApp背后的小众编程语言:Erlang
当前位置:点晴教程→知识管理交流
→『 企业管理交流 』
只凭 32 个技术人员,如何应付 4.5 亿的用户?对于刚刚被 Facebook 用 190 亿美元收购的 WhatsApp 来说,答案是 Erlang ——一种诞生于上世纪 80 年代的编程语言,终于在此时走到了聚光灯下。
但面对很多试图替代它的编程语言,Erlang 有自己的将来吗? Erlang是 25 年前由瑞典电信巨头爱立信开发,而现在它却在像 WhatsApp 和TigerText这样的即时消息应用里找到了自己的位置。即使 Facebook 也对这种语言大唱赞歌——它在 2009 年用 Erlang 开发了 Facebook 聊天应用。而在同年,它拒绝了 WhatsApp 创始人 Brian Acton 的求职申请。 并发成为新宠 " 使用 Erlang,你可以开发出同时允许大量用户连接的消息传输应用,而不用担心消息是如何传输的," 使用这种语言开发的匿名发帖系统Whisper的 CTO Chad DePue说。" 相反 ",他说," 你担心的是如何设计一个好的应用。" 爱立信工程师Joe Armstrong设计 Erlang 语言时始终将电信通讯的工作原理铭记在心:同时有百万用户并行通讯,对故障事件几乎是零容忍。对于如此巨量的并行通讯,其它语言基本可望而不可及——有的表面上看起来擅长处理并发,但它们却不是原生的 " 多任务处理者 "。而 Erlang,跟它们形成鲜明对比,天生擅长多线程或玩这种 " 杂技 " ——再增加一个旋转的盘子?丢上来! " 这种语言非常富有表达性," 谷歌创新实验室的Igor Clark说。" 你可以在一个很高的层面工作,用它的几个关键概念可以做很多事情。" 从实际使用的角度,Erlang 最初非常适合在单个机器上跨多处理器处理高效的执行命令。而如今,它已经进化成擅长跨全球网络服务器——也就是我们所说的 " 云 " ——执行海量命令。游戏,金融等任何像实时拍卖系统那样对速度、稳定性、吞吐量高要求的场景,Erlang 的这种云特征都是必不可少的。 同样,对于程序员来说,Erlang 的吸引力也独树一帜的,它允许系统不停机的情况下进行更新和 bug 修复。实时上,你可以修改系统属性或更换文件而不引起系统的卡顿。Erlang 语言的这种特性是电信业的强制要求的结果:正如 DePue 说的," 当有人在打电话时,你不可能因为要升级系统而挂断他们的电话。" 砸了电信的饭碗 Erlang 语言在 1998 年就开源了,而如今的电信也却没有当初那么大方。像 WhatsApp,微信,Line, 和其它应用如雨后春笋,电信业一度依赖的短信费用迅速被腐蚀。KPN,一家荷兰公司,在目睹短信收益大幅下滑后试图封杀这些应用,但最终在法庭上输了官司。 一些大型的运营商,例如 Vodafone,试图建立自己的短信服务网络,但几乎没有成功的。它们现在的办法就是对用户的合同进行修改,添加并标明短信和数据各自的费用。 就在这些电信公司忙着调整他们的收费标准时,WhatsApp 却在专注做产品。它们的技术团队让 WhatsApp 在规模和速度上的提升一次又一次的让 Erlang 语言社区轰动,在短短的几年里,每个服务器的连接数从 1 万跃升到 2 百万。 这些成绩的实现全都归功于 Armstrong 打下的基础,他为爱立信量身定制的项目 AXD301,实现了 "9 个 9" 的可靠性 ( 99.9999999% ) 。而如今这些年轻的挑战者们,却将这些垂老的电信公司打的节节败退。 Erlang 语言能实现超越吗? 有着这样骄人的成绩,你也许会认为 Erlang 会被人们广泛的使用。但现实情况要比你想象的复杂得多。 直到现在,Erlang 编程语言的开发者社区规模依然很小,并且大部分聚集在欧洲。这种语言的语法是公认的 " 奇特 "。如果你想分析复杂的数据或架设一个小网站,自然会选择其它更好的语言和工具。而且,很多新出现的编程语言和变种都借鉴了 Erlang 语言的基本理念,从谷歌的Go语言到Docker语言,竞争越来越激烈。 Elixir给 Erlang 带来了希望——Armstrong 最近的大力赞扬。Elixir 将 Erlang 的语法普通化,这能帮助这种语言模仿 Rails 带红 Ruby 语言的模式找到自己的出路。像Chicago Boss这样的项目也在努力让这种语言更用户友好化。一旦有更多的社群在 Erlang 语言周围聚集,人们将会发现 OTP ( 开放电信平台 ) 里更丰富的功能。 " 他们从开发坚固无比的软件和程序库中总结出来很多模式,我们可以很好的借用,"Clark 说。 Erlang 语言否能流行起来的一个关键是便携设备市场,就是我们所说的网络设备。智能设备爱好者们已经在尝试在 MQTT ——一个轻量级的传感器间消息传输协议——上使用 Erlang。如果能短信控制恒温器,那用 WhatsApp 也一定能行。 该文章在 2014/3/24 23:51:44 编辑过 |
关键字查询
相关文章
正在查询... |