程序员的三大优点:懒惰、急躁和傲慢

1987 年的今天,Perl 1.0 发布。

今天是 Perl 语言诞生 35 周年。

ce647f0b4a7e05ac8a9c7a7354ff93d9.png

忽略一下这张图的时间

Perl  语言发明人 Larry Wall 是一位传奇的黑客、一个风趣幽默的人。他的传世名言——

程序员的三大优点是:懒惰、急躁和傲慢。

在编程圈子的普及程度大概仅次于——

林纳斯大神的 “Talk is cheap. Show me the code.” 

但是,很多人还不太了解大神这句话背后的整套方法论。在多个场合,Larry Wall 将自己的方法论描述为“懒惰、急躁和傲慢”。他说这是一名优秀程序员的三种美德。Larry 解释:

  • 懒惰激励他寻找自动化任务的方法,避免不必要的工作;

  • 急躁使他想快速高效地完成事情;

  • 而傲慢使他有信心应对困难的问题。

Larry 将这套方法在他的知名作品骆驼书(Programming Perl)中详细解释如下:

“We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.”

These virtues are elaborated on as follows:

Laziness

The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don’t have to answer so many questions about it. Hence, the first great virtue of a programmer. Also hence, this book. See also impatience and hubris. (p.609)

Impatience

The anger you feel when the computer is being lazy. This makes you write programs that don’t just react to your needs, but actually anticipate them. Or at least pretend to. Hence, the second great virtue of a programmer. See also laziness and hubris. (p.608)

Hubris

Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won’t want to say bad things about. Hence, the third great virtue of a programmer. See also laziness and impatience. (p.607)

好了,此刻正是周末的小尾巴,祝大家抓紧愉快!

文章虽然很短,但好作品还是要推荐的。

如果你想知道更多如此有趣有料的编程老黄历,抓紧入手编程日历2023!

附0:Larry Wall 简介及 Perl 语言速览

d4e504b79108d5c71fbf268945ce9b1c.png

Larry Wall 访谈截图

(我觉得只有这个神态能反映 Larry 大神的内涵)

1954 年,出生于印第安纳州的一个数学和计算机科学世家。

1975 年,从加州大学伯克利分校获物理学学士学位,并于 2 年后获计算机科学硕士学位。毕业后,在劳伦斯伯克利国家实验室做系统管理员。

1987 年 12 月18 日,发布 Perl 1.0 ,这是一种高级编程语言,广泛用于 Web 开发、系统管理和数据操作。Perl 以其灵活性、简单性和强大的正则表达式功能而闻名,因此是处理大量文本或数据的任务的首选。

  • 1987: Perl 1.0 is released

  • 1988: Perl 2.0 is released

  • 1989: Perl 3.0 is released

  • 1991: Perl 4.0 is released

  • 1993: Perl 5.0 is released

  • 1996: Perl 5.002 is released

  • 1998: Perl 5.004 is released

  • 2000: Perl 5.6 is released

  • 2002: Perl 5.8 is released

  • 2004: Perl 5.10 is released

  • 2007: Perl 5.12 is released

  • 2011: Perl 5.14 is released

  • 2014: Perl 5.16 is released

  • 2018: Perl 5.28 is released

  • 2021: Perl 5.32 is release

为了推广 Perl 语言,Larry 撰写了多本关于编程和计算机科学的图书,其中 Programming PerlPerl Cookbook 是  Perl 程序设计方面的知名作品。

除了在 Perl 上的工作,Larry 还通过参与各种开源项目和组织为开源软件社区做出了重大贡献。例如,他曾担任开源倡导组织(Open Source Initiative,OSI)董事会的成员。

为表彰他在开源软件领域的贡献,Larry 被授予互联网名人堂、自由软件推进奖、 O'Reilly 开源奖等奖项与荣誉。

附1:Perl 语言名称的由来

很多时候,大家以为 Perl 是  Practical Extraction and Report Language 缩写,实际上,它背后的故事更有趣儿。Larry 最初打算把语言命名为 Pearl(珍珠),但是,当时已经有了一种叫 Pearl 的编程语言,不得已,Larry 放弃了字母中的 a,以免混淆。

附2:Larry Wall 的图书作品

31 年前,大神写的首本作品 Programming Perl 是编程领域的经典之作:

0bafffe963ce1fe4814273fc9d75cc22.png

这本书到 2012 年出版第4版,一直是学习 Perl 的首选参考书。

另外,1998 年,Larry Wall 跟 Tom Christiansen 出版 Perl Cookbook ,这本也是领域内的经典作品。

9ce349dd2a1f9c0838bfe582541387a1.png

附3:其他资料

Hacker News 上专门有一篇帖子非常严肃地讨论“懒惰、急躁和傲慢”,有兴趣的朋友可以去看看:Laziness Impatience Hubris 

https://news.ycombinator.com/item?id=23825931

下面是关于 Larry 的一个很棒的访谈:

https://www.youtube.com/watch?v=aNAtbYSxzuA

特别说明:

本篇文章的一小部分内容由 ChatGPT 君操刀。感兴趣的同学可以猜一猜是哪一部分。

还没完!最后——

变得有趣是人类的永恒追求,但是真正实践的人总是少数,

搞一本日历作为电脑伴侣,每天看 2 分钟,

就为变得有趣迈出了那么一小步!

每天一小步,一年一大步

交给《了不起的程序员2023》!

c73571e302f65fd62511feea132e1623.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20664.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt6教程之三(19) Git版本管理工具

一 Git简介 Git的由来 是一个开源的分布式版本控制系统 ,用于有效、高速的处理从很小到非常大的项目版本管理。 Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。 GitHub是一个基于Git的远程文件托管平台(同GitCafe、BitBucket和GitLab等…

Android中如何使用GPS

Android中如何使用GPS获取位置信息?一个小Demo如下 GPS简介 Gobal Positioning System,全球定位系统,是美国在20世纪70年代研制的一种以人造地球卫星为基础的高精度无线电导航的定位系统,它在全球任何地方以及近地空间都能够提供…

【万字长文】深度解析 Transformer 和注意力机制(含完整代码实现)

深度解析 Transformer 和注意力机制 在《图解NLP模型发展:从RNN到Transformer》一文中,我介绍了 NLP 模型的发展演化历程,并用直观图解的方式为大家展现了各技术的架构和不足。有读者反馈图解方式虽然直观,但深度不足。考虑到 Tra…

全球首位 AI 律师出庭,花 100 万美元找“传话筒”!网友:头脑正常的人谁会同意?...

整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 在 ChatGPT 的热潮下,近来在国内外科技网站上,各类 AI 话题几乎成为了“热搜常驻户”,其中不乏一些看起来极具噱头的新闻: 本周,AI 公司 Do…

Edge浏览器的美化

用了扩展软件后的Edged的界面为 非常方便 ,同时它还可以添加一些你需要用用到的app,无需下载。 它侧栏还有程序员选择,我们在这里可以直接进入CSDN。 废话不多说直接上教程: 1.打开Edge找到扩展选项,点击管理扩展。 …

这才是我想要是游览器——打造最强Microsoft edge+ChatGPT

这也许是你的Microsoft edge界面: 而这时我的edge游览器界面: 对比一下,第一个是默认的游览器界面,第二个是升级后的游览器界面。 是不是感觉第一个比较土呢第二个更高大上一些呢 其实相差巨大的主页,其实只是一个插…

TR外汇黑平台资金盘深度揭秘,谨防上当受骗,迟早会跑路

本人是有着13年外汇经验的外汇人,行业的大小事情,各级的产业链也基本都接触过,算是一个很资深的行业人士了,这么多年可以说是从刀光剑影中走过来,想想也很不容易了。本人vx:yunshao886 本篇所讲内容&#…

玩转 ChatGPT,看这条就够了,Prompt 最全中文合集

Prompt 最全中文合集 玩转 ChatGPT,看这条就够了! 🚀 简化流程:ChatGPT Shortcut 提供了快捷指令表,可以快速筛选和搜索适用于不同场景的提示词,帮助用户简化使用流程。 💻 提高生产力&#…

美国探亲签证面签时一定要用英语吗?

签证问题:美国探亲签证面签时一定要用英语吗? 知识人网:申请美国探亲签证,面签时不会说英语也没有关系的。面签时不一定要说英语,您可以用中文面谈。美国签证官都精通英语和中文,您在面签时可以选择用中文…

中外互免签证协定一览表(普通护照与公务普通护照)

普通护照:由公安部出入境管理机构或者公安部委托的县级以上地方人民政府公安机关出入境管理机构以及中华人民共和国驻外使馆、领馆和外交部委托的其他驻外机构签发,主要颁发给出国定居、探亲、访友、继承财产、留学、就业、旅游等因私事出国的中国公民。…

我与 InsCODE AI 创作助手的一次对话

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 我与INDCODE AI 创作助手的一次对话 🧊摘要🧊前言🧊对话内容🧊结束语 🧊摘要 本文介绍了 CSDN 嵌入式INSCODE AI 创作助手…

我与 INDCODE AI 创作助手的一次对话

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 我与INDCODE AI 创作助手的一次对话 🧊摘要🧊前言🧊对话内容🧊结束语 🧊摘要 本文介绍了 CSDN 嵌入式INSCODE AI 创作助手…

聊聊微服务架构中的用户认证方案!

更多内容关注微信公众号:fullstack888 聊聊微服务中一个重要的话题:如何设计微服务架构下的用户认证方案。今天主要涉及三个方面的内容: 传统的用户认证方案;JWT 与 JJWT;基于网关的统一用户认证。 一、传统的用户认证…

chatgpt赋能python:用Python来炒股——更高效、更智能的投资方式

用Python来炒股——更高效、更智能的投资方式 随着科技的发展,越来越多的投资者开始采用自动化投资方式来管理并优化自己的投资组合,Python作为一种高效、可扩展性强的编程语言,逐渐成为了自动化投资的重要工具。本文将介绍如何利用Python来…

chatgpt赋能python:有人用Python炒股吗?探究Python在炒股领域的应用

有人用Python炒股吗?探究Python在炒股领域的应用 Python作为一种高级编程语言,已经被广泛应用于各个领域,包括自然语言处理、数据分析、人工智能等等。那么在炒股领域,Python是否同样有广泛的应用呢?本文将探究Python…

chatgpt赋能python:Python炒股代码:如何实现自动交易?

Python炒股代码:如何实现自动交易? 股票交易从来都不是一件容易的事情。因此,很多股民也会选择依靠程序化交易,也就是自动交易的方式。而Python正是一种极为适合进行自动交易的编程语言。通过Python编写的程序,不仅可…

html修改修改头像业务,修改头像.html

修改头像 $axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; }; $axure.utils.getOtherPath function() { return resources/Other.html; }; $axure.utils.getReloadPath function() { return resources/reload.html;…

用户上传头像以及BUG修改

持久层 1、sql语句的规划 上传文件的操作其实是:先将用户上传的文件保存到服务器端的某个位置,然后将保存文件的路径记录在数据库中。当后续需要使用该文件时,从数据库中读出文件的路径,即可实现在线访问该文件。 在持久层处理数…

HTML点击头像修改页面,头像修改页.html

头像修改页 $axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; }; $axure.utils.getOtherPath function() { return resources/Other.html; }; $axure.utils.getReloadPath function() { return resources/reload.htm…

移动端--修改头像

image/*表示选择所有图片格式 使用第三方插件实现头像裁剪 Cropper.jsCropper.js const cropper new Cropper(image, { viewMode: 1, dragMode: move, aspectRatio: 1, autoCropArea: 1, cropBoxMovable: false, cropBoxResizable: false, background: false, movable: true…