作者:黄哲铿《技术管理之巅》作者、技术领导力特约撰稿人

Erlang之父Joe Armstrong于4月20日去世,享年68岁。

Erlang Solutions、Erlang Factories的创始人Francesco在推特上怀念道:“尽管他不在了,但他的工作已经打下的基础,将对未来几代人都有用的。”


如果你对Erlang不熟悉,至少听说或使用过RabbitMQ吧,RabbitMQ的服务器就是用Erlang写的。


有幸跟Joe Armstrong博士做过短暂的交流,在2016年11月,CSDN举办的“SDCC中国软件开发者大会”上,他分享的几个观点,至今仍印象深刻:

“人们总认为产品开发流程是这样:Specify→Build→Test→Sell→$$$,然而实际上却是这样的:Start→??????????→Product。”

“一件事情如果过于复杂,那么一定是哪里出问题了 —— 大部分情况下是对问题的理解出现偏差”


这一观点,跟他发明Erlang语言的初衷是一样的:简单优雅,一次编写,永远运行。


记得当时跟Armstrong博士请教,他是如何保持数十年对编程的热爱。

“我就是热爱编程,并且擅长调试程序,上大学的时候我帮同学调试程序,他们给我买啤酒。”

“调bug换啤酒?酷!”



Armstrong曾在一次访谈中,分享过他在编程习惯上的改变,值得全世界程序员们借鉴。


第一:先思考再编程

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

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

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


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

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

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

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

Erlang是一种什么样的语言?

Erlang是一种结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适合于构建分布式,实时软并行计算系统。使用Erlang编写出的应用运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通讯。进程间上下文切换对于Erlang来说仅仅只是一两个环节,比起C程序的线程切换要高效得多了。


使用Erlang来编写分布式应用要简单的多,因为它的分布式机制是透明的:对于程序来说并不知道自己是在分布式运行。Erlang运行时环境是一个虚拟机,有点像Java虚拟机,这样代码一经编译,同样可以随处运行。它的运行时系统甚至允许代码在不被中断 的情况下更新。另外如果需要更高效的话,字节代码也可以编译成本地代码运行。

Joe Armstrong博士生平

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

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

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

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

缅怀大师最好的方式,莫过于读他的这份博士论文:http://erlang/download/armstrong_thesis_2003.pdf



精彩文章推荐:

  • 被淘汰的技术人,80%是因为...

  • 刘强东:996怎么了?很累吗...

  • 京东焦虑:996,高管离职,奶茶婚变

  • 技术团队绩效怎么打?详解OKR、KPI

  • 哈哈哈哈,IT总监VS美发总监

  • 程序员深夜回家被快递员当成小偷

  • 阿里员工一年挣多少钱?

  • 40G的AI、大数据视频资料

  • 区块链学习资料下载(13小时)

更多推荐

Erlang之父去世,忠告程序员:先思考再编程,累的时候不要写代码