整理 | 伍杏玲

出品 | CSDN(ID:CSDNnews)

北京时间 4月20日,据Erlang Solutions、Erlang Factories的创始人Francesco Cesarini的推特称,Erlang之父Joe Armstrong于4月20日去世,享年68岁。

Francesco怀念道:“尽管他不在了,但他的工作已经打下的基础,将对未来几代人都有用的。”

Joe Armstrong 是谁?

1950年12月27日,Joe Armstrong出生于英国伯恩茅斯。

虽然Joe Armstrong 17岁时开始接触到Fortran编程,但他从本科直到博士念的是物理学,后来因为积蓄用完无法完成学业,而转向计算机科学。

后来为了谋生,他成为Donald Michie(英国人工智能领域奠基人之一)的研究员。在此期间,他撰写了一些有关机器人视觉的论文。

后来政府削减了对人工智能的研究经费,Armstrong又回到了物理学领域,从事5年多与物理学编程相关的工作。开始时他在欧洲非相干散射科学协会(EISCAT)工作,后来又到了瑞典空间研究中心工作,协助开发应用程序系统。最后Armstrong加入爱立信计算机科学实验室,在那发明Erlang,成为容错系统开发领域的世界级专家。

并在2003 年,Armstrong获得瑞典皇家工学院(KTH)的计算机科学博士学位,发表的博士论文《Making reliable distributed systems in the presence of software errors》对研究并发有不菲的参考价值。

在念本科时,Armstrong有件趣事:他那时已特别喜欢编程和善于调试程序。如果别人程序出了问题,他就会以一杯、两杯、三杯啤酒的“收费”去帮助同学调试程序。

为什么他的贡献如此重要?

Armstrong发明的Erlang在全球范围内是个小众语言,根据TIOBE发布的最新语言排行榜,Erlang排名第47位,市场份额占有仅为0.177%。它不是像Java、C++是面向对象语言的,它是函数编程语言。

早在1986年,Armstrong开始编写Erlang,当时Erlang设计初衷针对的软件是类似于电话交换机那样的高可用性、高可靠性系统。并在1998年,Erlang作为开源项目发布。

当程序员们开始努力应对多核系统未来的发展趋势时,并发性引起了他们的注意。而Erlang正是拥有强大的并行处理能力和容错机制,并成就了可靠性达到99.9999999%的目前世界上最复杂的 ATM 交换机。

对于编程语言,Armstrong认为编程语言必须简单好用,才能便于开发者去学。

老码农的两条忠告

Armstrong在SDCC 2016中国软件开发者大会

Armstrong曾在CSDN主办的“SDCC 2016中国软件开发者大会”上,幽默地分享了他编程20年来对软件开发的一些思考,他说:“人们总认为产品开发流程是这样:Specify→Build→Test→Sell→$$$,然而实际上却是这样的:Start→??????????→Product”。

为什么他会这么说呢?

Armstrong曾在《编程人生》中分享过他在编程习惯上有了两个改变,值得我们开发者借鉴。

  • 第一:先思考再编程。

他在编程的20年都犯着一个错:在年轻的时候,会不停地写程序,直到完成。

等写完后他会突然发现:“啊!搞错了!”等到重新编写程序,会再次发现:“噢,程序是错的。”于是又重新编写。

他于是开始思考改变:“先不要动手写代码,把这些东西都想好,这样做不是很好吗?”

  • 第二:不要在疲惫时写代码。

在年轻的时候,他会通宵地写程序,例如一个小时接着一个小时不休息,不停地编写代码,一口气写到凌晨4点钟。即使身体状况不好他也坚持不懈,因为他要让代码能够跑起来。

后来他发现程序员在疲惫的时候编写的程序都是垃圾,第二天就要把它们废弃掉。他认为真正好的代码是程序员完全进入状态的时候编写,人甚至没有在考虑程序,只是很放松地坐在那里,输入代码,这样的代码会很不错。

他建议如果程序员觉得自己状态不对,“不能再写了。”停下来,干点别的。

在开发者大会上,Armstrong预言在未来二十年,所有与关键性能相关的软件将与硬件相融合。

可惜Armstrong无法亲自参与这当中来,我们仅在此感谢如此热爱编程的Joe Armstrong,一生为编程所作出的贡献。

资料:

Joe Armstrong:关于Erlang,有很多东西我想改变

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

(本文为AI科技大本营转载文章,转载请联系原作者。

精彩推荐

5月25-27日,由中国IT社区CSDN与数字经济人才发展中心联合主办的第一届CTA核心技术及应用峰会将在杭州国际博览中心隆重召开。首届CTA核心技术及应用峰会将围绕人工智能,邀请技术领航者与开发者共同探讨机器学习知识图谱的前沿研究及应用。

同时,我们推出会议双日开发者盲定票,仅售299元(原票价1099元),限量30张。扫描下方二维码,或添加小助手微信1731967109,备注【CTA】,了解大会详情以及票务问题。

推荐阅读:

  • 开什么玩笑?股票价格如何经得起AI的推敲?| 技术头条

  • 深入卷积神经网络背后的数学原理 | 技术头条

  • 用Python实现OpenCV特征提取与图像检索demo

  • Python基础入门——简介和环境配置,超实用!

  • 云计算之基,一文带你速懂虚拟化KVM和XEN

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

  • 程序员逆袭为美国最佳 CEO,他说因为爱情

  • 用一枚比特币环游世界? 他是不是疯了...

  • 程序员如何向女友解释:为啥软件都要装C盘?

❤点击“阅读原文”,直接参与大会报名

Erlang之父给程序员的两点忠告 | 缅怀相关推荐

  1. 十大编程语言之父——每个程序员都应该记住!

    Dennis Ritchie(丹尼斯里奇)被世人尊称为"无形之王的C语言之父"."伟大的UNIX之父",开创了计算机网络技术的先河,为乔布斯等IT巨匠提供肩膀的 ...

  2. 为什么我不推荐Python初学者直接看项目源码?工作五年的程序员给的忠告

    前言 很多刚开始学习Python的初学者,一般看文章,看视频,都会需要直接获取源代码,其实这样对自己的学习是不怎么好的,因为无论是有没有其他语言的经验,入门Python都很简单.Python拥有简单直 ...

  3. 程序员的一些忠告和反省

    1. 不要看到别人的回复,第一句话就说:给个代码吧!你应该想想为什么.当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异. 2. 初学者请不要看太多的书那会误人子弟的.先找一本好书系统的学习 ...

  4. 一则鬼故事:如果全世界程序员都消失了

    作者 | 轩辕之风O 来源 | 编程技术宇宙(ID:xuanyuancoding) 程序员被鄙视? 这两天,有一个话题引起了程序员的广泛讨论:年薪80W程序员相亲被鄙视! 某知名互联网社区,一网友发帖 ...

  5. 1024,如果全世界程序员都消失了,会怎样?

    这两天,有一个话题引起了程序员的广泛讨论:年薪80W程序员相亲被鄙视 某知名互联网社区,一网友发帖,自己年薪80W去相亲,竟然被鄙视不如在二本学校教书的大学老师. 估计令他没想到的是,即便是在这样一个 ...

  6. 如果没有程序员,世界会变成什么样?

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨轩辕之风O 来源丨编程技术宇宙(ID:xuan ...

  7. 我们程序员真的如此不堪吗?

    如果程序员都消失了 每年的10.24,属于咱们程序员的传统佳节,不妨来开个脑洞:如果灭霸打了一个响指,全世界程序员都消失了,世界会变成什么样? 程序员一消失,世界上所有的程序代码将无法再更新了··· ...

  8. 年薪 80W 程序员相亲被鄙视??那,如果程序员都消失了

    程序员被鄙视? 这两天,有一个话题引起了程序员的广泛讨论:年薪80W程序员相亲被鄙视 某知名互联网社区,一网友发帖,自己年薪80W去相亲,竟然被鄙视不如在二本学校教书的大学老师. 估计令他没想到的是, ...

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

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

最新文章

  1. 爬了20W+条猫咪交易数据,它不愧是人类团宠
  2. Windows server 2012 搭建×××图文教程(二)配置路由和远程访问服务
  3. Laravel-数据库操作笔记
  4. 机器学习入门系列二(关键词:多变量(非)线性回归,批处理,特征缩放,正规方程
  5. 清除window 系统中的垃圾文件-转
  6. IT行业 侃侃富士康
  7. 基于 Kong 和 Kubernetes 的 WebApi 多版本解决方案
  8. 物联网的未来不止于 5G!
  9. Reapp - 下一代的 Hybrid App 开发框架
  10. 安卓bmi项目_Android自定义View实现BMI指数条
  11. Windows server 2016 / Windows 10关于域管理员帐号权限不足的问题
  12. 信息管理与信息系统毕业论文选题?
  13. 字符串匹配算法知多少?
  14. 计算机考研408每日一题 day165
  15. 【Scratch案例实操】scratch西游记师徒谁人气高 scratch编程案例教学 scratch创意编程 少儿编程教案
  16. 进程间通信之FIFO
  17. 计算机网络ABCD,计算机网络理及应用试卷(ABCDE).doc
  18. 面向对象编程中的 诡异事件
  19. 转载Flickr 网站架构分析
  20. 幼儿园案例经验迁移_浅谈在幼儿园数学教学中如何为迁移而教

热门文章

  1. UITextField的代理方法
  2. lr手工添加关联函数的步骤:
  3. zabbix二次开发之从mysql取值在运维平台js图表展现
  4. HTML5 Dashboard – 那些让你激动的 Web 技术
  5. memcached图形界面的监控
  6. maven不引入parent_Idea开发环境中,开发springboot类型的项目,如果只引入parent节点,不添加依赖节点,maven是不会加载springboot的任何依赖的...
  7. DFS:深入优先搜索 POJ-2386 Lake Counting
  8. Result Maps collection already contains value for
  9. 博客园的博客积分与排名查看方法
  10. nginx缓存功能的设置