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

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.org/download/armstrong_thesis_2003.pdf


精彩文章推荐:

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

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

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

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

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

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

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

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

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

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

  1. 当程序员没了互联网,该如何继续学习写代码?

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 编者按:现在很多时候,我们都是面向搜索(或 Google 或百度).GitHub 编程,那么 ...

  2. AI终将砸掉程序员的饭碗,动动手就能自动写代码的GPT-3来了

    近日OpenAI发布其最新的NLP模型-GPT-3(论文地址:https://arxiv.org/abs/2005.14165),并成功登顶了Github的趋势榜(https://github.com ...

  3. 高效程序员秘籍(6):使用CLCL加快写代码的速度

    经常看到论坛上有人抱怨日常的编程工作就是复制和粘贴,对此我也深有体会,尤其是利用类似SSH框架开发的项目,很大一部分代码都是通过复制粘帖然后再稍加修改完成的.但是Widows的剪贴板只能记录最近一次复 ...

  4. 当程序员没了互联网,该如何继续学习写代码

    因为是看的别人的,自己又懒就放上链接吧. http://blog.csdn.net/csdnnews/article/details/78787775

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

    整理 | 伍杏玲     出品 | CSDN(ID:CSDNnews) 北京时间 4月20日,据Erlang Solutions.Erlang Factories的创始人Francesco Cesar ...

  6. Linux之父和Redis之父,Redis之父:10x程序员应该具备哪些素质

    Fred Brooks(<人月神话>的作者)最早在他的论文"没有银弹--软件工程的本质和偶然性(No Silver Bullet - Essence and Accidents ...

  7. python max函数时间复杂度_程序员的思考:用函数还是用复杂表达式

    程序员的思考:用函数还是用复杂表达式 Perl语言的原作者Larry Wall曾经说过,伟大的程序员都有三个优点:懒惰.暴躁和自负.乍一看这三个词语没有一个是褒义词,但在程序员的世界里,这三个词有不同 ...

  8. 程序员避免面向监狱编程攻略大盘点

    2020年时间过得好快,转眼间白驹过隙般飞奔而去,而在岁末年初的当口,笔者在回顾这一年程序员世界的大事件后,突然发觉如何避免程序员面向监狱编程是个特别值得一谈的话题,这几天一款秒杀茅台酒的Python ...

  9. 程序员发展职业规划_梁胜博士:写给程序员的话

    本文为Rancher Labs CEO兼创始人梁胜博士应InfoQ之邀,为广大程序员专门撰写的个人职业发展心路历程及对程序员职业生涯规划的建议. 梁胜博士是Rancher Labs Inc. 公司联合 ...

最新文章

  1. 《ActionScript3.0 游戏设计基础(第二版)》随书代码和附赠章节(共4章)
  2. HDU-4568 Hunter 状态压缩
  3. 【数据库】MongoDB数据库的操作及练习
  4. 百度发布机器人助理度秘 “三大基石”炼成
  5. C++中的抽象类及纯虚函数的实现与否
  6. rust(72)-match匹配
  7. 产品经理如何锻炼自己看透事物本质的能力
  8. linux配置java环境变量(详细)(转)
  9. adblock插件_为WordPress创建一个反AdBlock插件
  10. java贪吃蛇添加背景音乐_java代码中简单添加背景音乐(亲测有效)
  11. 康考迪亚计算机科学需要gre吗,康考迪亚大学研究生院化学工具专业录取条件
  12. 挺带劲!通过 Nginx 来实现封杀恶意访问
  13. 读硕士和读博士有什么区别?
  14. 微信怎么识别图片文字
  15. 微信WeChatHelper3.1.0.72逆向-微信WeChatHelper3.1.0.72接口(WeChatHelper3.1.0.72.dll)-VC++调用实例方法(win32)
  16. 滴滴云 远程访问jupyter
  17. 00-线段检测--FLD
  18. 今天来个好玩儿的 “ 反射 ”
  19. Oracle 按照每小时分组,求每组数量
  20. 手把手教你做音乐播放器(八)桌面小工具(上)

热门文章

  1. 机器学习的学习经验总结!
  2. 滤波算法 | 无迹卡尔曼滤波(UKF)算法及其Python实现
  3. 从violate到ConcurrentHashMap,我通过引导面试官,过了多场技术面试
  4. web页面播放优酷视频,播放html5视频,兼容ie7 vcastr22.swf播放
  5. javascript时间日期操作
  6. 希尔排序(实现+总结)
  7. MySQL软件多次安装失败解决方案
  8. 怎么从视频中提取音频文件?
  9. Word文档中插入的图片显示不全、嵌入式图片显示不全解决方法,仅设置图片为单倍行距方法
  10. 刘润对谈吴军:给腾讯和所有上进企业的4点建议