`
varsoft
  • 浏览: 2510043 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

八卦一下Erlang的发明人Joe Armstrong

阅读更多

SmallTalk Tidbits看来的。Erlang的作者Joe Armstrong到欧洲Smalltalk用户组做了个报告。James Robertson记录了报告的要点,顺便八卦了一下Erlang的历史。当年Armstrong在爱立信逍遥快活,做电话网络方面的开发(多半是交换机了)。他当时用过Smalltalk,可惜那个时候Smalltalk忒慢,不能满足电话网络的高性能要求。但阿伯伯实在喜欢Smalltalk,于是定购了一台Tektronix Smalltak机器(那个时代的牛人们不容易啊。硬件跟不上。为了心爱的语言,只好发展自己的专用机器。有兴趣的可以去读LISP机器的手册。可算是郁闷人生,精彩项目)。机器订要两个月才到。A老大等待中百无聊赖,就开始玩儿起Prolog来了。结果等Tektronix到的时候,他已经对Prolog更感兴趣,于是把死贵死贵的Tektronix送人。接手人呢,好像(找不到出处了)就是现在OO程序员们景仰的Ivar Jacobson。艾老大当年也在爱立信电话交换机部门工作,顺手发明了Use Case和Sequence Diagram。后来他出走爱立信,创立了Objectory,并提出了一套开发流程,OOSE。1991年爱立信买了Objectory,1995年又把它卖给了Rational。然后艾老大就和Grady Booch 以及 James Rumbaugh搞出了UML。UML的U是统一的意思。要统一什么嗫?当然就是号称三架马车(Three Amigo, 和网上曾经流传的那篇著名小说可没关系)让众多铁杆拥泵争吵不休的OOSE, OMT,和Booch 方法。看来牛人们也扎堆。嗯,走题了。说回A老大。A老大当然不满足于精通Prolog。再说光是Hoare Logic,也忒单调了点。经过一段时间的试验,A老大给Prolog加上了并发处理。于是Erlang就诞生乐。这也是为什么Erlang的语法和Prolog有不少相似之处,比如它们的List表达都是[Head | Tail]。你说都是学Prolog。有人两个月后就搞出个电信业和银行业广泛应用的牛B语言。我们两个月后却在抱怨Hoare Logic不够强大和直观。天壤之别啊。
顺便八卦一下Erlang。Erlang这们语言最牛的地方就是强大的并行处理能力和容错机制。Armstrong的博客有篇浅显易懂的文章介绍Erlang背后的思想。值得一读。文章标题也很骠悍:“Concurrency Is Easy”。端的豪气万丈。简单说,Erlang能够创建和管理大量的进程(不是操作系统级别的)。那些进程在不同的操作系统上有同样的行为,可以被垃圾回收,对运行地点透明(location transparent),不会破坏其它进程的运行。任意两个进程间完全独立,不共享任何状态,一切交流通过消息来传递,当然也就无需上锁。这样的设计思想造就了适合解决如下问题的Erlang:
§ 系统高度并发 - 支持几十万个并行行为
§ 实时处理
§ 计算高度分布
§ 系统要求高度可靠:每年的脱机时间以分钟算,甚至永不当机
§ 系统高度复杂:代码量以百万行计
§ 持续操作:以年计
§ 系统要求持续在线更新。
而要做到这些,需要:

并发
进程
错误隔离
隔离进程
错误侦查
发现什么东西当掉了
错误诊断
为什么当掉
在线代码更新
持续进化的系统(同时运行多个版本)
稳定存储
崩溃恢复
系统彻底独立,遵循所谓的无共享语义是系统稳定和高并发的关键。至于句法么,可以到www.erlang.org上去看指南。
搞笑的是,爱立信在A老大发明Erlang后勒令A老大放弃使用Erlang。理由是Erlang不过是业余选手的玩儿票语言,未来没有保证。嗯,很像现在对某R字打头的语言的批评哈。A老大一怒之下,就把Erlang开源乐。然后A老大和一群Erlang牛人于1998年成立了Bluetail,专卖用Erlang实现的软件及技术。然后2000年Bluetail就被Alteon Web Systems用一亿五千万美刀买了。 A爷爷则回到爱立信继续逍遥快活。
分享到:
评论

相关推荐

    Erlang程序设计 Programming.Erlang.Joe.Armstrong.英文版.pdf

    在《Erlang程序设计》这本书中,作者Joe Armstrong强调了并发编程的重要性,并提出了一个关键观点:如果想要编写的行为像现实世界中的对象一样的程序,那么这些程序将具有并行结构。这表明,为了模拟真实世界的复杂...

    Erlang程序设计_第2版_含中文版英文版_含源码_(Programming_Erlang)_Joe.Armstrong

    《Erlang程序设计》是Joe Armstrong所著的一本经典书籍,主要面向对并发编程和分布式系统感兴趣的读者。这本书的第二版提供了更深入的Erlang语言教程,以及丰富的实践案例,帮助读者理解和掌握Erlang的核心特性。...

    Joe Armstrong-面对软件错误构建可靠的分布式系统 2003 EN

    本文献由Joe Armstrong撰写,作为其在皇家理工学院提交的博士论文的一部分。该论文主要探讨了如何在存在软件错误的情况下构建可靠的分布式系统。研究始于1981年,并逐渐形成了一个新的编程语言——Erlang,以及一套...

    Erlang程序设计(第二版)及源码

    本书由Erlang之父Joe Armstrong编写,是毋庸置疑的经典著作。书中兼顾了顺序编程、并发编程和分布式编程,重点介绍如何编写并发和分布式的Erlang程序以及如何在多核CPU上自动加速程序,并深入地讨论了开发Erlang应用...

    Erlang并发编程 part1

    erlang并发编程,erlang之父Joe Armstrong得原著之一。

    Programming Erlang second edition

    《Programming Erlang second edition》是Joe Armstrong的经典著作,它是Erlang编程语言领域的权威指南,该书第二版于2013年首次发行。书中不仅覆盖了Erlang的核心语言和框架基础知识,还包括了重要的社区项目,例如...

    Programming Erlang.pdf

    本书《Programming Erlang》由Joe Armstrong撰写,他是Erlang的主要发明者之一。出版社为The Pragmatic Bookshelf,位于美国北卡罗来纳州的罗利和德克萨斯州的达拉斯。该出版社还拥有一些其他知名书籍的版权,如...

    Erlang程序设计(第2版)1

    【Erlang程序设计(第2版)】是由Erlang之父Joe Armstrong撰写的一本经典著作,专注于介绍Erlang编程语言在并发、分布式和容错系统中的应用。本书适用于初学者和有一定经验的Erlang程序员。作者在书中讨论了如何利用...

    Programming Erlang

    《Programming Erlang》是由Joe Armstrong编著的一本关于Erlang编程语言的经典著作。这本书深入浅出地介绍了Erlang的各个方面,旨在帮助读者理解和掌握这门强大的并发和分布式计算语言。 Erlang是一种静态类型、...

    programming erlang src code

    《编程Erlang》是Joe Armstrong所著的一本经典书籍,深入浅出地介绍了Erlang这门函数式编程语言,以及它在并发和分布式系统中的应用。源码分析可以帮助我们更深入地理解Erlang的内在机制和设计哲学。 Erlang是一种...

    erlang程序设计中文版

    Joe Armstrong是Erlang的创始人,他在这本书中深入讲解了Erlang程序设计的核心概念和应用。Erlang语言特别适合需要并发处理和高可靠性的场合,例如电信行业、实时交易系统、云服务等。 Erlang的设计理念来自于对...

    Pragmatic.Programming.Erlang.2nd.Edition

    《Pragmatic Programming Erlang 第二版》由Erlang之父Joe Armstrong撰写,是一本深入浅出地介绍了Erlang语言特性和编程技巧的专业书籍。本书不仅适用于初学者入门,也为经验丰富的开发者提供了新的见解和技术指导。...

    Erlang编程

    《Erlang编程:软件为并发世界而设计》是Joe Armstrong所著的入门级Erlang书籍。作者在Erlang语言的开发中扮演了核心角色,因此他对Erlang的理解深入且独到。这本书内容浅显易懂,非常适合初学者,目的是让读者能够...

    [Erlang程序设计].中文版.pdf

    Joe Armstrong [Erlang程序设计].中文版 一本不错的Erlang学习书籍~!

Global site tag (gtag.js) - Google Analytics