当前位置:首页 > 科技  > 软件

世界上最低调的编程语言,高并发的王者,程序员翻身的秘密武器!

来源: 责编: 时间:2023-10-08 09:59:03 371观看
导读1998年,爱立信推出了一款著名的交换机AXD301, 这款交换机实现了惊人的9个9(99.9999999%)的可用性。一般的系统,实现5个9,即一年停机5分钟已经相当不错了,9个9意味着20年的运行时间内只有0.631秒的停机时间。实现这个奇迹的

1998年,爱立信推出了一款著名的交换机AXD301, 这款交换机实现了惊人的9个9(99.9999999%)的可用性。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

一般的系统,实现5个9,即一年停机5分钟已经相当不错了,9个9意味着20年的运行时间内只有0.631秒的停机时间。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

实现这个奇迹的关键就是爱立信发明的编程语言Erlang。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

图片图片nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

大家也能看出来,Erlang的进程不是操作系统中常说的进程,它非常轻量级,每个进程的开销只有几百个字节,一台服务器可以轻松地支持几百万个进程同时运行。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

进程可以是分布式的,可以跨越网络来互相发送消息,添加服务器就可以轻松扩展。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

Joe Armstrong还在Erlang中内置了“弹性”的能力,当一个进程崩溃时——不管是因为Bug还是硬件故障——都不会导致整个系统崩溃,这对电话交换系统来说非常重要。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

图片图片nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

02艰难发展

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

新语言的推广是非常困难的。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

有爱立信员工听说了Erlang这个新语言,就在一个原型系统中尝试了一下,他们惊奇地发现,这个新玩意儿开发起系统来,比其他方案要快得多。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

但即使如此,Erlang依然没法大范围地在爱立信铺开使用,更别说普及到全世界了。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

Joe Armstrong和团队想了很多办法进行“促销”,比如写书,召开会议,把Erlang移植到DOS、Windows、Mac、VxWorks等各种平台。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

图片图片nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

他们甚至录制了一个小电影做宣传。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

图片图片nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

1995年,Erlang终于迎来了转机。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

爱立信公司计划开发新一代的交换机产品,以分组交换形式进行语音、数据和各种宽带服务的通信。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

但是这个项目实在太复杂了,最早用C++开发,很快就陷入了巨大的泥潭,濒临崩溃。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

这时候,大家想到了Erlang,死马当做活马医,用它来救场吧。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

Erlang不负众望,顺利帮助团队完成了交换机的开发,这就是文章开头提到的AXD301。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

有意思的是,这么优秀的编程语言,爱立信竟然把它禁掉了,禁止内部使用!nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

原因居然是电信产品生命期长,维护一个自己专有的语言成本很高,不如采用全世界都用的编程语言!nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

这个禁令一出,为Erlang付出大量心血的Joe Armstrong等人大为震惊,没办法,只好游说公司开源Erlang。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

1998年12月,Erlang正式开源,团队的初始成员也离开了爱立信,成立了自己的公司Bluetail,致力于Erlang的开发。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

Erlang离开了电信领域,进入广阔的互联网市场。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

03大放异彩

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

2009年1月,雅虎前员工Jan Koum买了一部iPhone手机,他想到了一个点子:为什么不开发一个App,通过互联网来发送消息呢?nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

传统的方式是短信,资费高,还有流量限制,这很不爽。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

于是他拉来了雅虎的同事Brian Acton一起干,互联网用户的特点那就是用户数极多,并发数极高,两人经过研究,发现Erlang简直就是处理大规模消息的不二之选,后台开发就它了!nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

2009年1月,WhatsApp诞生。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

图片图片nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

WhatsApp一经推出,用户便迅猛增长,如今在全球已经拥有了20亿活跃用户。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

图片图片nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

2014年,Facebook斥资190亿美元收购了一个叫做WhatsApp的软件,震惊业界。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

此时的WhatsApp,已经有了4.5亿亿用户,并且每天以100万在增长。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

但是,让人吃惊的是,WhatsApp只有32名工程师,负责服务器后端开发的程序员只有10人。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

这么惊艳的成绩,Erlang可以说是功不可没!nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

04向Web进军

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

虽然Erlang性能卓越,但是它的函数式编程的语法却并不为大众所熟悉。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

一个叫Jose Valim的巴西人觉得Erlang, OTP, Beam VM这样的好东西,广大的码农群众不能使用真是太可惜了。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

Jose Valim是Ruby on Rails的核心开发人员,深受Ruby社区的影响。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

于是大神出手,借用了Ruby简洁优雅的语法,把Erlang和OTP进行了包装,创建Elixir这门新语言。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

图片图片nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

图片图片nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

以Elixir为基础,Jose Valim等人还开发了一个新的Web框架Phoenix,方便程序员使用Elixir进行Web应用的开发。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

许多创业公司使用了Elixir和Phoenix快速构建应用,尤其是高并发,实时的应用,其中最著名的是Discord。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

图片图片nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

Discord的CTO在2017年的一篇文章中说道:nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

Discord 就是 Elixir 的早期采用者, Erlang VM 是我们想要构建的高并发实时系统的完美候选者,过去两年,系统中的并发用户数已达到近 500 万,每秒有数百万个事件...... 如果让我从头再选择一次的话,我还会选择Elixir。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

05Erlang为什么不流行?

nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

看到这里,你脑海中很可能会浮现这个问题:nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

你把Erlang吹得天花乱坠,为什么它还无法成为Java这样的主流语言呢?nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

有位Lisp大佬Richard P. Gabriel说得很有道理:Worse is better。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

大佬说软件设计有四个目标:简单性,正确性,一致性,完整性。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

在软件设计上有两大流派:MIT流派(以Common Lisp和Scheme为代表)和新泽西流派(就是贝尔实验室,以Unix和C语言为代表)。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

MIT流派认为设计一定得正确,接口一定得简单,为了这两点,实现层面复杂一点也没关系。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

而新泽西流派则反过来,认为简单性比正确性更重要,尤其是实现的简单性比接口简单性更重要。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

这带来的结果就是:Unix和C语言具备简单的结构,易于移植,运行时只需要很少的资源,虽然他们只能提供操作系统和编程语言50%~80%的功能,还是能够像病毒一样,疯狂传播。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

因为Unix和C解决了痛点问题,大家可以轻松接受,并且由于实现的简单性,很容易和别的平台和软件整合,用户还会不断修改它们,完善它们。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

而Erlang,很抱歉,它是典型的MIT流派,这是个设计精巧、实现复杂的系统,一旦它不能满足特定需求,想在保证正确性和简单性的同时对它进行修改,非得是高人不可,这一点严重阻碍了Erlang的传播。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

那Erlang真的不好吗?nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

不,这要看这要看谁在使用它,WhatsApp和Discord就是典型案例,在这里Erlang和Elixir发挥了极大的威力,遥遥领先竞争对手。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

Paul Graham在《黑客与画家》的“拒绝平庸”这一章也说过,他用一个小众语言Lisp开发了一个电子商务的网站ViaWeb,利用Lisp强大的宏,定制出电子商务领域的DSL,让Viaweb开发速度飞快,他们不断推出新功能,让那二三十个使用C语言和Perl的竞争对手目瞪口呆。nmM28资讯网——每日最新资讯28at.com

nmM28资讯网——每日最新资讯28at.com

跟随主流不会出错,但是要想迅速脱颖而出,你得采用那些有点难度的但是生产力惊人的语言,从这个意义上来说,Erlang/Elixir很可能是击败普通人的秘密武器。nmM28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-12396-0.html世界上最低调的编程语言,高并发的王者,程序员翻身的秘密武器!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 面向并行处理的7个Python库

下一篇: Java并发编程:理解多线程和锁机制

标签:
  • 热门焦点
  • 如何使用JavaScript创建一只图像放大镜?

    译者 | 布加迪审校 | 重楼如果您曾经浏览过购物网站,可能遇到过图像放大功能。它可以让您放大图像的特定区域,以便浏览。结合这个小小的重要功能可以大大改善您网站的用户体验
  • 在线图片编辑器,支持PSD解析、AI抠图等

    自从我上次分享一个人开发仿造稿定设计的图片编辑器到现在,不知不觉已过去一年时间了,期间我经历了裁员失业、面试找工作碰壁,寒冬下一直没有很好地履行计划.....这些就放在日
  • 深度探索 Elasticsearch 8.X:function_score 参数解读与实战案例分析

    在 Elasticsearch 中,function_score 可以让我们在查询的同时对搜索结果进行自定义评分。function_score 提供了一系列的参数和函数让我们可以根据需求灵活地进行设置。近期
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 讲故事上个月我写过一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,当时用的是 GDIView + WinDbg 把问题搞定,前者用来定位泄露资源,后者用来定位泄露代码,后面有朋友反
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • 重估百度丨大模型,能撑起百度的“今天”吗?

    自象限原创 作者|程心 罗辑2023年之前,对于自己的“今天”,百度也很迷茫。“新业务到 2022 年底还是 0,希望 2023 年出来一个 1。”这是2022年底,李彦宏
  • 小米MIX Fold 3下月亮相:今年唯一无短板的全能折叠屏

    这段时间以来,包括三星、一加、荣耀等等有不少品牌旗下的最新折叠屏旗舰都有新的进展,其中荣耀、三星都已陆续发布了最新的折叠屏旗舰,尤其号荣耀Magi
  • OPPO K11样张首曝:千元机影像“卷”得真不错!

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
  • 联想的ThinkBook Plus下一版曝光,键盘旁边塞个平板

    ThinkBook Plus 是联想的一个特殊笔记本类别,它在封面放入了一块墨水屏,也给人留下了较为深刻的印象。据有人爆料,联想的下一款 ThinkBook Plus 可能更特殊,它
Top