Erlang之父Joe Armstrong今日到访环信,激情讲述如何构建一个永不停机的系统

Erlang之父Joe Armstrong今日到访环信,激情讲述如何构建一个永不停机的系统_第1张图片

据环信社报道:今日,61岁的Erlang之父Joe Armstrong不远万里来到中国,与环信程序猿一行举行了亲切的会谈。Joe分享了对如何学习编程,如何成为大牛等一系列热门问题提出了自己的看法。

Erlang之父Joe Armstrong今日到访环信,激情讲述如何构建一个永不停机的系统_第2张图片

大神Joe激情讲述如何用Erlang特性来构建一个永远不停机的系统。Joe表示:“一个永不停机的系统需要能够在多种失败的情况下依然能够保持正常运行。特别在系统维护和升级方面,Erlang独有的热代码替换有着天然的优势。”

环信首席架构师&即时通讯云产品线负责人Eric向Joe介绍了Erlang在环信的部署情况:“Erlang在环信已经部署上千台机器,一个典型集群会使用高达3176核8068G内存,用来支持包括移动端、Web端、Windows和Linux等多个平台的千万级长连服务。”

双方在友好、建设性的气氛中深入探讨就共同关心的重大问题深入交换意见,达成重要共识。

Erlang之父Joe Armstrong今日到访环信,激情讲述如何构建一个永不停机的系统_第3张图片

Eric向大神Joe赠送环信纪念品

环信首席颜值担当Eric首先欢迎Joe Armstrong访问环信。他说,这是Erlang之父近2年来的首次访问环信,也是中国和瑞典程序猿交流中的一件大事。环信高度重视Joe的访问,相信此访必将对中瑞计算机语言长远发展产生新的推动。(新闻联播口音)

Erlang之父Joe Armstrong今日到访环信,激情讲述如何构建一个永不停机的系统_第4张图片

环信小粉丝获得大神Joe亲笔签名赠书

Erlang之父Joe Armstrong今日到访环信,激情讲述如何构建一个永不停机的系统_第5张图片

为了帮助大家学习Erlang语言,大神Joe推荐给开发者的教材

Erlang特性:

并发性 - Erlang支持超大量级的并发进程,并且不需要操作系统具有并发机制。

分布式 - 一个分布式Erlang系统是多个Erlang节点组成的网络(通常每个处理器被作为一个节点)

健壮性 - Erlang具有多种基本的错误检测能力,它们能够用于构建容错系统。

软实时性- Erlang支持可编程的“软”实时系统,使用了递增式垃圾收集技术。

热代码升级-Erlang允许程序代码在运行系统中被修改。旧代码能被逐步淘汰而后被新代码替换。在此过渡期间,新  旧代码是共存的。

递增式代码装载-用户能够控制代码如何被装载的细节。

外部接口-Erlang进程与外部世界之间的通讯使用和在Erlang进程之间相同的消息传送机制。

Fail-fast(中文译为速错),即尽可能快的暴露程序中的错误。

面向并发的编程(COP concurrency-oriented programming)

函数式编程

动态类型

及早求值或严格求值

脚本语言

关于Erlang和Joe Armstrong

Erlang得名于丹麦数学家及统计学家Agner Krarup Erlang,同时Erlang还可以表示Ericsson Language。Erlang并非一门新语言,它出现于1987年,只是当时对并发、分布式需求还没有今天这么普遍,当时可谓英雄无用武之地。Erlang语言创始人Joe Armstrong当年在爱立信做电话网络方面的开发,他使用Smalltalk,可惜那个时候Smalltalk太慢,不能满足电话网络的高性能要求。但Joe实在喜欢Smalltalk,于是定购了一台Tektronix Smalltalk机器。但机器要两个月时间才到,Joe在等待中百无聊赖,就开始使用Prolog,结果等Tektronix到来的时候,他已经对Prolog更感兴趣,Joe当然不满足于精通Prolog,经过一段时间的试验,Joe给Prolog加上了并发处理和错误恢复,于是Erlang就诞生了。这也是为什么Erlang的语法和Prolog有不少相似之处,比如它们的List表达都是[Head | Tail]。1987年Erlang测试版推出,并在用户实际应用中不断完善,于1991年向用户推出第一个版本,带有了编译器和图形接口等更多功能。1992年,Erlang迎来更多用户,如RACE项目等。同期Erlang被移植到VxWorks、PC和 Macintosh等多种平台,两个使用Erlang的产品项目也开始启动。1993爱立信公司内部独立的组织开始维护和支持Erlang实现和Erlang工具。

环信Erlang工程师招聘​

职位:通讯研发工程师(Erlang/Golang) 薪资范围: 25000以上工作职责:1. 负责开发和维护即时通讯系统,优化提高后端服务的承载能力;2. 或负责优化、改进和实现IM协议,为移动互联网以及物联网用户提供可靠实时的即时通讯服务;任职要求:1. 熟悉Erlang、Golang或C/C++开发,有Unix/Linux平台相关经验者优先;2. 熟悉网络通信机制及常用数据传输协议;3. 熟悉常用数据库,如MySQL、Redis系统,有HBase或其他NoSQL相关使用经验者优先;4. 有较强的解决问题能力,能够承受压力情况下完成解决问题;5. 能够与团队成员紧密合作,共同攻克技术难题;6. 掌握多种语言者优先,Go、Python或其他语言均可;7. 需要有开放共享的心态,接受开源思想,有Github创建、维护或参与经验更好;简历请发送至"[email protected]"

你可能感兴趣的:(Erlang之父Joe Armstrong今日到访环信,激情讲述如何构建一个永不停机的系统)