Joe Armstrong:关于并行编程和Erlang的十个问题

原文:[url=http://www.thinkingparallel.com/2007/03/20/ten-questions-with-joe-armstrong-about-parallel-programming-and-erlang/]Ten Questions with Joe Armstrong about Parallel Programming and Erlang[/url]

第一部分:关于并行编程的通用问题

1)
Michael:我们进入了多核时代,你认为并行计算最终会成为主流吗?或者这仅仅是一个阶段并且很快对并行编程感兴趣的人将(又一次)变成高性能社区的一员?
Joe:是的,绝对主流——我们讨论的是双核时性能提高两倍而4核时性能提高4倍。我曾经有一个在32核的机器上跑的程序,性能提高了18倍。注意这是18倍——我们习惯于通过重写部分程序代码来提高5%~10%的性能,却想不到400%或1800%——这是所有软件的通病。

2)
Michael:在网络上,一时间对共享内存编程还是消息传递编程是并行编程更好的方式展开了激烈的讨论。对此你的意见是什么?
Joe:共享内存系统很难理解并保证正确,特别是当错误出现的时候。不出错就不错了,当出错时则根本无法继续搞。当一个程序拿了一个锁,并且把共享内存搞的乱七八糟,然后崩溃了,其他进程怎么知道它到底在搞什么东东,更别说帮忙搞定那些错误了。
事务内存和纯净的消息传递系统不用考虑上述的任何问题。

3)
Michael:对你而言,并行编程在目前或者过去的几年里最令人兴奋的发展和革新是什么?
Joe:P2P架构,分布式哈希表,planet lab等全球伸缩的系统集成。
类似于bit torrent的东西正在摧毁传统工业,就像1770年多轴纺织机摧毁了家庭纺织机工业一样,bit torrent正在历史记录上做同样的事情。这不是是否发生的问题,而是何时发生的问题。

4)
Michael:并行编程的未来在哪里?“银弹”即将到来吗?
Joe:是的——纯净的消息传递基础架构将解决很多问题(例如amazon简单查询服务)。这回到了Paul Morisson的基于流的编程模型。

5)
Michael:目前最紧迫的一个问题是并行编程仍然很难,并且没有它的顺序编程对手们高产。对你而言有什么方式改变这一点吗?
Joe:这并不太难——这很难是因为目前占据统治地位的编程模型是锁、线程和共享内存——现在它们是很难的。纯净的消息传递系统对编程实现和推理很容易。
世界是并行的——我们是并行的。

第二部分:关于Erlang

6)
Michael:与其他并行编程系统相比较,Erlang有什么独特的优势和弱点?你希望在哪些方向改进它?
Joe:优势是Erlang是为容错系统而设计的,所以在软件和硬件出错时它能很好的降级。它认真对待出错。进程和错误处理是语言定义的一部分而不是操作系统所提供的。
弱点是分布式Erlang的安全性是要么全有要么全无的。拥有不同级别的安全性和能力或者基于信任的安全模型会更好。

7)
Michael:如果你可以再次从零开始设计Erlang,你会做哪些不同的事情?
Joe:
1,让模块和代码处理更高级一些,添加自省功能
2,为协议的断言属性添加一层契约
3,在编程语言里让协议成为头等公民
4,为分布式计算加一个信任/能力层
5,为弱连接的分布式系统分层。分布式Erlang只是为了拥有强大安全性的类集群计算。

8)
Michael:有没有什么特殊的工具推荐给大家来方便Erlang编程?IDE?编辑器?调试器?调优器?改错工具?或其他什么的?
Joe:没有。编译器独自拥有95%的fun。这样人们对他们的IDE十分笃信。我使用emacs和xterm。有些人热衷于一些东西,但我本人不怎么感兴趣。

9)
Michael:请给Erlang新手们分享一些小建议!你该怎么入门?有什么书?教程?网络资源?提问最好的地方在哪里?
Joe:
书籍——(无耻的插入):读我的新书Programming Erlang。
教程:www.trapexit.org
发布:www.erlang.org
提问:erlang邮件列表(登录www.erlang.org)

10)
Michael:你在Erlang程序里遇到的最糟糕的错误是什么?
Joe:没有文档的程序——我讨厌人们说“读代码”——代码是问题的解决方案——通过读代码我不得不猜测问题是什么,并且这很可能出错。我喜欢别人告诉我问题是什么,而不是靠猜。
所以最糟糕的错误是当我写在程序里一个长达多页的注释来解释一些特殊的技巧点时,结果发现在稍后的版本中别人删除了整个注释。
Erlang之父Joe Armstrong及其创世纪 Erlang的设计初衷是构建可靠的、高并发的通信系统。总结起来,Joe Armstrong作为Erlang的发明人之一,通过引入轻量级进程和消息传递机制,使得Erlang成为了一种强大的并发编程语言。他的工作对于构建可靠、高并发系统具有重大的影响,并且Erlang的设计思想也为其他编程语Erlang的发明者Joe Armstrong及其创世纪。综上所述,Joe Armstrong作为Erlang的发明者之一,通过引入轻量级进程和消息传递机制,使得Erlang成为一种强大的并发编程语言。 阅读详情

相关推荐

《Erlang之父:为什么面向对象很糟糕》PDF

《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF

Erlang中的并行编程

Erlang中的并行编程: 定义: Process :并发执行的活动的个体,是个完整的虚拟机,系统当中可以同时存在多个并发的进程。 Message:进程之间通信的方法。 Timeout:用于等待指定一段时间的,然后决定完成某个动作的机制。 Registered Proc

southflow的专栏 1309

07. 基础实战篇 - STP的基本配置

STP(生成数协议)是一个用于在局域网中消除环路的协议,他的标准是IEEE802.1d。STP通过强制使部分冗余链路处于阻塞状态,其它链路处于转发状态,将环形网络结构修剪成无环路的树形网络结构。可实现消除环路,当处于转发状态的链路不可用时,STP重新配置网络,并激活合适的备用链路状态,恢复网络连通性。

weixin_39868387的博客 7224

Erlang的并行编程时代即将来临

     首先我想说的是:我也是个Erlang的学习新手,最近看到一些文章,说这个Erlang语言的各种各种,好奇心之下去看了看相关的资料。Erlang的创始人是ArmStrong,这个人我不熟,就不废话了,起初这门语言的设计是为了爱立信公司的电信系统的业务,发展到今天的话,在并发计算的今天和未来,Erlang势必会风靡全世界。其分布式、并发、可靠等的特点必然会掀起新一轮的语言热潮。     有的人说Erlang将在并发领域超越Java。原文是这么说的:未来的计算是并发计算。现今甚至桌面CPU也是多核的,当

edwardtsau的专栏 713

ControlRig蓝图节点对应代码(自用)

用于通过python生成ControlRig蓝图节点,非完整

dicha9的博客 425

使用ggplot2包中的双Y轴功能在R语言中可视化时间序列数据,并在时序数据末尾添加数值标签是一种有效的数据展示方式

使用ggplot2包中的双Y轴功能在R语言中可视化时间序列数据,并在时序数据末尾添加数值标签是一种有效的数据展示方式。通过这种方式,我们可以同时展示两个变量的趋势,并在时序数据末尾添加数值标签,使得数据更加直观和易于理解。假设我们有一个包含两个变量的时间序列数据集,一个是时间变量,另一个是对应的数值变量。现在,我们可以使用ggplot2包来创建一个基本的时间序列图,其中包含两个数值变量。接下来,我们将添加一个双Y轴,并在时序数据末尾添加数值标签。函数在数值1的每个数据点上添加数值标签。

Orion_O的博客 269

Programming Erlang读书笔记9: 并行程序里的错误

使用BIF link将两个节点连接起来,如果其中一个节点B退出,则另一个节点A会收到{'EXIT', B, Why}的信号 可以创建一个on_exit(Pid, Fun)方法来捕获某个Pid进程的死掉: [code] on_exit(Pid, Fun) -> spawn(fun() -> process_flag(trap_exit, true), li...

hideto 180

YOLOv11【第二章:核心模块进阶篇·第28节】DynamicHead动态检测头设计!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 1万+

Erlang之父Joe Armstrong去世

允中 发自 凹非寺量子位 出品 | 公众号 QbitAI4月20日,Erlang语言的设计者Joe Armstrong去世,享年68岁。Erlang Solutions、...

量子位 502

DaVinci配置DID之二:工具链配置

本系列主要基于DaVinCi工具链来展开具体DID读写的配置以及最终实现。1,CDD准备2,工具链配置3,代码实现4,验证结果本文讲述流程2话不多说,走你~博主也是AutoSar小白,如果哪里表达的有问题,还请大佬们指点指点哈。接下来,让我们在下章关于代码具体实现的博文再相会哈~

weixin_48498880的博客 5734

滑模观测器与锁相环结合应用:让电机“无感”也能精准旋转的奥秘

本文介绍了永磁同步电机无传感器控制中的滑模观测器(SMO)结合锁相环(PLL)技术。SMO通过创建虚拟电机模型,利用电流误差产生控制信号来估计反电动势;PLL则从反电动势中解码转子位置和速度信息。该组合方案兼具SMO的鲁棒性和PLL的高精度,计算量小且硬件要求低。文章详细阐述了原理、数学模型、参数整定方法及实际实现技巧,包括离散化处理、符号函数替代等优化手段,并分析了低速性能限制、抖振问题等常见挑战及解决方案。最后指出该技术未来将与人工智能、多观测器融合等方向结合发展。

汽车软件开发 193

Erlang之父Joe Armstrong近期回顾的一些旧事

Erlang 之父 Joe Armstrong 于2013年1月24日在 Erlang 邮件列表里发了文章。详细解说了他自己从开始学习编码到发明 Erlang 的整个历史。并且,对如何学习编程;如何成为大牛等一系列热门问题提出了自己的看法。当然,文中槽点无数(包括坚定不移的黑我大PHP)。这也是我觉得有必要翻译出来的原因之一。整体上,虽然是和 Erlang 相关的话题。但是读过之后,会突然领会到

zhubenxiao的专栏 1057

【Bug已解决】Claude Team Plan 购买席位报错 Payment failed 解决方案

方案适用场景推荐指数检查账单历史状态排查的第一步⭐⭐⭐⭐⭐更换支付方式类型快速尝试是否能绕开问题⭐⭐⭐联系官方支持团队最终解决问题的正规渠道⭐⭐⭐⭐⭐临时过渡方案紧急用人需求的应急处理⭐⭐⭐关注官方修复进度确认属于系统性缺陷的场景⭐⭐⭐⭐Claude Team Plan 增购席位报的问题,社区反馈和实际排查表明很大概率属于平台计费系统在处理按比例分摊费用这类复杂计算链路时的系统性缺陷,而不是用户自身的支付信息填写有误。先排除自身账单历史是否存在异常。

一键难忘的博客 4179

Joe Armstrong最喜欢的一段Erlang程序

导读:最近网友又翻出一篇Erlang之父Joe Armstrong生前经典的帖子,并引发了热议,高可用架构翻译如下。前几天,我收到了来自罗文大学的Dean Galvin的邮件。 Dean...

weixin_45583158的博客 314

Unity GameObject 核心机制深度解析:从底层结构到工程实践

从底层机制讲透 Unity GameObject:托管壳加原生芯的双层对象模型如何制造假 null 陷阱、Transform 层级与组件通信的原理、生命周期回调的确切顺序。文章同时给出 Instantiate 成本分析与对象池等高频场景的工程实践。

游戏人生 40

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

采访Joe Armstrong的podcast

早上上班,听Software Engineering Radio对Joe Armstrong的访谈。Software Engineering Radio办得真不错。请来业界风云人物娱乐大众。访谈前主持人做了功课,提的问题颇为有趣,引得被采访着侃侃而谈。上期对Galen Hunt的访谈也挺精彩,把Singularity OS吹得比Singularity还有卖点。Joe在谈到并发编程对程序员冲击时

负暄琐话 2万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Erlang之父Joe Armstrong去世,他留给程序员两点忠告

“周末一直在公司加班,正准备关电脑下班时,看到优快云公众号(csdnnews)推送了Armstrong去世的消息,微博上刘江老师也提及了他11年前引进出版《Erlang...

架构文摘 693

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Erlang 之父去世,他留给程序员两点忠告

感谢如此热爱编程的Joe Armstrong,一生为编程所作出的贡献。

优快云资讯 4万+

Erlang 之父 Joe Armstrong 去世

早上刷推的时候看到有好友在转发一条让人震惊的消息,Erlang 之父 Joe Armstrong 于4月20日去世,卧槽,印象中他和比尔盖茨是同时代的人,查了一下才68岁...

Python之禅的专栏 532

Erlang 之父 Joe Armstrong 逝世,如何评价他在计算机领域的贡献?

RIP, 哀悼,第一次因为名人去世而感到痛心。 Joe Armstrong 不必说 erlang 与 OTP, 光他的论文《面对软件错误构建可靠的分布式系统》就足以载入史册——领先现在几十年,提出了OOP 等思想本质上不是并发的正确处理方法。 Joe Armstrong 在论文中是这样认为的:几乎所有传统的编程语言对真正的并发都缺乏有力的支持——本质上是顺序化的,而语言的并发性都仅仅由底层操作系...

weixin_34014277的博客 299

【SDCC 2016】Erlang之父Joe Armstrong:如何设计高可靠的分布式并行系统

【优快云现场报道】2016年11月18日-20日,由优快云重磅打造的年终技术盛会 —— “2016中国软件开发者大会”(Software Developer Conference China 2016,简称SDCC 2016)在北京京都信苑饭店隆重举行。本届大会云集了100多位国内外顶尖专家和技术大牛,共设新趋势和新实践2大主题会场,14场主题分论坛。面向国内外的中高端技术人员,聚焦最前沿技术...

qunnie_yi的博客 745

程序调试与啤酒——Erlang之父Joe Armstrong访谈

文 / Peter Seibel 译 / 米全喜 以啤酒收取程序调试报酬 Seibel:你是如何开始学习编程的?是从什么时候开始的? Armstrong:是从中学时开始的。我出生于1950年,上中学那会儿还没有几台计算机。到了中学最后一年,那年我应该是17岁,我们当地的议会得到一台大型计算机,好像是IBM的。我们可以在上面写Fortran程序。通常,我们在编码纸上写好程序,然后发出去。一个...

《程序员》官方BLOG 384

并行编程大牛专访

Interviewing the Parallel Programming Idols 并行编程大牛专访 By Michael Suess Thinking Parallel(http://www.thinkingparalle...

chuifuhuo6864的博客 126

Erlang之父Joe Armstrong确认出席SDCC 2016中国软件开发者大会,并发表主题演讲

2016年11月18日-20日,由优快云重磅打造的年终技术盛会,SDCC 2016中国软件开发者大会将在北京举行,大会面向国内外的中高端技术人员,聚焦最前沿技术及一线的实践经验,从而助力企业的技术升级和改造、全面提升技术人员的综合实力。本次大会非常有幸地邀请到了Erlang最初的设计者和实现者Joe Armstrong来华,出席SDCC 2016·北京站的Keynote并带来精彩的主题分享,他也...

博客 5608

Erlang 之父 Joe Armstrong 逝世,享年 68 岁

百度智能云 云生态狂欢季 热门云产品1折起>>> 4月20日,Erlang 语言设计者Joe Ar...

weixin_34293902的博客 130
上一篇: Erlang里实现MapReduce
下一篇: 如何写超强伸缩性的多游戏玩家服务器
hidetobj
博客等级 码龄19年 16粉丝 301原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值