本文共 705 字,大约阅读时间需要 2 分钟。
早上刷推的时候看到有好友在转发一条让人震惊的消息,Erlang 之父 Joe Armstrong 于4月20日去世,卧槽,印象中他和比尔盖茨是同时代的人,查了一下才68岁,多可惜啊。
很多人可能对 Joe Armstrong 不了解,但是 Erlang 这门语言你一定听说过,游戏公司用它来写服务端开发。Erlang对标的语言是Go,适用于并发要求很高的业务场景下。不过 Erlang 并没有像Go一样的流行起来。
但是 Joe Armstrong的博士论文《面对软件错误构建可靠的分布式系统》对研究并发却非常有参考价值,论文阐述了 Erlang 的设计思想,提出了 “一切皆进程”等9条 Erlang 世界观。基于此理念设计出了可靠性达到99.9999999%的目前世界上最复杂的 ATM 交换机。
一切皆进程
进程强隔离
进程的生成与销毁都是轻量的操作
消息传递是进程交互的唯一方式
每个进程有唯一的名字
你若知道进程的名字,就可以向他发消息
进程之间不共享资源
错误处理非本地化
进程要么正常跑着,要么马上挂掉
如果你是并发编程语言的爱好者,强烈推荐你阅读这篇论文。像我们这种普通程序员都能看懂,没有复杂的公式推导,以白话的方式解答"如何在存在软件错误的情况下编写出具有合理行为的软件"。
以前看过 Joe Armstrong 用一张5岁小孩都能看懂的图完美解释了并发与并行的区别。这就是所谓的大道至简,当你对一件事物理解透彻之后,总可以用最浅显易懂的方式表达出来。
《面对软件错误构建可靠的分布式系统》阅读地址:http://t.cn/EaU2jOP ,也可以在公众号回复「erlang」获取PDF文件
转载地址:http://mpqwb.baihongyu.com/