首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

北京时间 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年来对软件开发的一些思考,他说:“人们总认为产品开发流程是这样:SpecifyBuildTestSell$$$,然而实际上却是这样的:Start??????????Product”。

为什么他会这么说呢?

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

第一:先思考再编程。

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

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

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

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

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

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

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

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

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

资料:

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190422A065T900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券