阅读更多
2016年11月18日-20日,由CSDN重磅打造的年终技术盛会,SDCC 2016中国软件开发者大会将在北京举行,大会面向国内外的中高端技术人员,聚焦最前沿技术及一线的实践经验,从而助力企业的技术升级和改造、全面提升技术人员的综合实力。



本次大会非常有幸地邀请到了Erlang最初的设计者和实现者Joe Armstrong来华,出席SDCC 2016·北京站的Keynote并带来精彩的主题分享,他也是Erlang OTP系统项目的首席架构师。他拥有瑞典皇家理工学院博士学位,是容错系统开发领域的世界级专家。此外,他还在开发旨在替代XML的标记语言ML9。现任职于爱立信公司。

Joe Armstrong最广为人知的是他发明了Erlang编程语言,并且创建了用于构建Erlang应用程序的框架——开放电信平台(Open Telecom Platform,OTP)。在现代语言的版图中,Erlang有点另类。同很多流行的语言相比,它既老又新。早在1986年,也就是Perl出现的前一年,Armstrong就已经开始了Erlang的工作,当时它只作为商用产品出售并且主要在爱立信公司内部使用。

这种情况直到1998年Erlang作为开源项目发布后才发生变化,那时Java和Ruby已经问世3年了。Erlang并非起源于Algol系列中的某个成员,而是源于逻辑编程语言Prolog。当时Erlang设计初衷也相当明确,它针对的软件是类似于电话交换机那样的高可用性、高可靠性系统。

但是几乎在不经意间,Erlang适合于构建电话交换机的那些特征也让它非常适合于编写并发软件,当程序员们开始努力应对多核系统未来的发展趋势时,并发性引起了他们的注意。

Armstrong本人也有点另类。他起初是一名物理工作者,在攻读物理学博士学位时因为用完积蓄而转向了计算机科学,找到一份研究员的工作,为英国人工智能领域奠基人之一的Donald Michie工作。在Michie的实验室,Armstrong接触了人工智能领域各个方面的杰作,成为英国机器人学会的创始成员并撰写了一些有关机器人视觉的论文。

由于Lighthill所做的那份非常有名的调查报告 ,人工智能的资金来源枯竭,Armstrong又回到了物理学领域,从事了5年多与物理学编程相关的工作。开始时他在欧洲非相干散射科学协会(EISCAT)工作,后来又到了瑞典空间研究中心,最后加入了爱立信计算机科学实验室,Erlang就是在那里发明的。

如果你想要获知他更多的情况,翻翻这本书吧编程人生 (豆瓣)。

顺便八卦一下Erlang。Erlang这们语言最牛的地方就是强大的并行处理能力和容错机制。Armstrong的博客有篇浅显易懂的文章介绍Erlang背后的思想。值得一读。文章标题也很骠悍:“Concurrency Is Easy”。端的豪气万丈。简单说,Erlang能够创建和管理大量的进程(不是操作系统级别的)。那些进程在不同的操作系统上有同样的行为,可以被垃圾回收,对运行地点透明(location transparent),不会破坏其它进程的运行。任意两个进程间完全独立,不共享任何状态,一切交流通过消息来传递,当然也就无需上锁。这样的设计思想造就了适合解决如下问题的Erlang:
  • 系统高度并发 - 支持几十万个并行行为
  • 实时处理
  • 计算高度分布
  • 系统要求高度可靠:每年的脱机时间以分钟算,甚至永不当机
  • 系统高度复杂:代码量以百万行计
  • 持续操作:以年计
  • 系统要求持续在线更新。

  
而要做到这些,需要:

  • 并发 进程
  • 错误隔离 隔离进程
  • 错误侦查 发现什么东西当掉了
  • 错误诊断 为什么当掉
  • 在线代码更新 持续进化的系统(同时运行多个版本)
  • 稳定存储 崩溃恢复

  
系统彻底独立,遵循所谓的无共享语义是系统稳定和高并发的关键。至于句法么,可以到www.erlang.org上去看指南。

引用

注:文章大多数内容整理自网络,感谢图灵和人民邮电出版社的授权。
  • 大小: 24.3 KB
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

Global site tag (gtag.js) - Google Analytics