190亿美元的WhatsApp背后的小众编程语言:Erlang

Posted VMfor虚拟机循环网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了190亿美元的WhatsApp背后的小众编程语言:Erlang相关的知识,希望对你有一定的参考价值。

只凭32个技术人员,如何应付4.5亿的用户?对于刚刚被Facebook用190亿美元收购的WhatsApp来说,答案是Erlang——一种诞生于上世纪80年代的编程语言,终于在此时走到了聚光灯下。


Erlang是25年前由瑞典电信巨头爱立信开发,而现在它却在像WhatsApp和TigerText这样的即时消息应用里找到了自己的位置。即使Facebook也对这种语言大唱赞歌——它在2009年用Erlang开发了Facebook聊天应用。而在同年,它拒绝了WhatsApp创始人Brian Acton的求职申请。

并发成为新宠

“使用Erlang,你可以开发出同时允许大量用户连接的消息传输应用,而不用担心消息是如何传输的,”使用这种语言开发的匿名发帖系统Whisper的CTOChad DePue说。“相反”,他说,“你担心的是如何设计一个好的应用。”

爱立信工程师Joe Armstrong设计Erlang语言时始终将电信通讯的工作原理铭记在心:同时有百万用户并行通讯,对故障事件几乎是零容忍。对于如此巨量的并行通讯,其它语言基本可望而不可及——有的表面上看起来擅长处理并发,但它们却不是原生的“多任务处理者”。而Erlang,跟它们形成鲜明对比,天生擅长多线程或玩这种“杂技”——再增加一个旋转的盘子?丢上来!

“这种语言非常富有表达性,”谷歌创新实验室的Igor Clark说。“你可以在一个很高的层面工作,用它的几个关键概念可以做很多事情。”

从实际使用的角度,Erlang最初非常适合在单个机器上跨多处理器处理高效的执行命令。而如今,它已经进化成擅长跨全球网络服务器——也就是我们所说的“云”——执行海量命令。游戏,金融等任何像实时拍卖系统那样对速度、稳定性、吞吐量高要求的场景,Erlang的这种云特征都是必不可少的。

砸了电信的饭碗

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也一定能行。

以下是Erlang语言的相关公司和项目:

1、Erlang 高可靠性编程语言(爱立信):

Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability.

 

2、FreeBSD操作系统:

FreeBSD is an advanced computer operating system used to power modern servers, desktops and embedded platforms.

 

3、jqGrid 表格:

jqGrid is an Ajax-enabled javascript control that provides solutions for representing and manipulating tabular data on the web.

 

4、libphonenumber 国际手机号码解析库:

libphonenumber is Google's common Java, C++ and Javascript library for parsing, formatting, storing and validating international phone numbers.

 

5、LightOpenId  轻量级openid鉴权:

LightOpenId is a php 5 library for easy openid authentication.

 

6、lighttpd 高性能http服务器:

lighttpd is an open-source web server optimized for high performance environments while remaining standards-compliant, secure and flexible.

 

7、PHP 脚本语言,这个不说了:

PHP is a popular general-purpose scripting language that is especially suited to web development.

 

8、yaws 轻量级的支持动态内容的web服务器:

yaws is a HTTP high perfomance 1.1 webserver particularly well suited for dynamic-content web applications.


以上是关于190亿美元的WhatsApp背后的小众编程语言:Erlang的主要内容,如果未能解决你的问题,请参考以下文章

媒体永不眠 一下科技单笔融资冲破5亿美元的背后

京东在美上市背后到底暗藏啥玄机?

黄允松谈青云的设计思想,1亿美元C轮融资的背后

暴亏10亿美元,加密银行与背后大鱼均陷入困境,机构们还敢Web3吗?

微软269亿美元收购领英获批准,背后是怎样的利益关系?

微软每年豪砸安全研发 10 亿美元,聊聊背后的技术密码