回顾经典-程序员的三大美德

🕒 阅读时间:6 分钟 📝 字数:2110 👀 阅读量: Loading...

本文存在AI修饰

引言

现在AI的发展非常迅速,我也在追热点,可以说各种概念是几天一遍,各种方法是几周一遍,各种范式一个月一遍,目不暇给!我决定一直追求热点也不是太好的事,我不能失其本心,我想考据一下曾经古法时代的一些非遗文化,这些文化在现代编程中仍然具有重要的价值,比如说我之前写的 Flash 考古QQ 记忆考古GNU 42 周年回顾GPL 许可证考据GPG 公钥文化再谈自由软件……今天我们来回顾另一个经典——程序员的三大美德

三大美德的出处

说到程序员的三大美德,就不得不提 Larry Wall——Perl 语言之父。他在 1991 年出版的《Programming Perl》(第一版)前言中,提出了这三个让程序员又爱又恨的品质:懒惰(Laziness)、急躁(Impatience)、傲慢(Hubris)。

说实话,第一次看到这三个词的时候,我以为这是个玩笑。但它不是。Larry Wall 用一种反讽的方式,精准地描述了优秀程序员的核心驱动力:

美德原文定义通俗理解
懒惰为了减少总体能量消耗而付出巨大努力能自动化的绝不手动,能写脚本的绝不点鼠标
急躁当计算机偷懒时你感到的愤怒慢一秒都不行,出了问题立刻排查
傲慢过度的骄傲,宙斯会因此劈你的那种写出来的代码要让别人挑不出毛病

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. —— Larry Wall,《Programming Perl》

不得不承认,这三大美德放到现在的 AI 时代依然好使。而且回头翻翻我自己的博客,你会发现我早就不知不觉地在践行它们了。


第一美德:懒惰

懒惰不是不干活,而是为了以后少干活,现在多写点代码

回过头来看,我在性能优化和自动化上折腾得最多。比如 Astro 5.17 构建性能优化实践,构建从 18s 压到 13s——说实话,省这几秒不是为了别的,就是受不了每次 bun run build 之后还要等。这就是典型的懒惰驱动优化

还有 github action/workflow 自动发布 npm 包,手动发布?不可能的。配好 workflow,push 一个 tag 就自动走完发布流程。以及 hexo 优化网站性能记录,断断续续折腾了几个月,加缓存、压图片、去无用 CSS……每一次优化都是因为忍不了

Larry Wall 说得对:懒惰的程序员会写文档,因为他不想反复回答同样的问题。这也是为什么我的博客里塞满了各种踩坑记录解决指南——不是乐于助人,纯粹是不想再说第二遍。不过今天来看,这些都是 AI 几分钟就能解决的问题。但换个角度想,这些当年的踩坑记录,既锻炼了自己,现在也训练了 AI——至少它们是真人踩坑换来的,不是 AI 自产自销的幻觉。这大概就是非遗传承的另一层含义:前人栽树,后人乘凉,AI 也在树下。


第二美德:急躁

急躁是当计算机偷懒时你感到的愤怒。它驱使你立刻动手修复,而不是等一等也许就好了

我博客里最能体现这一点的,就是 Bing 收录相关的几篇了——Bing 收录没了?亲测有效的快速恢复指南SEO 优化:期待拯救我的 bing 搜索。收录一掉,连夜排查 sitemap、手动提交索引、折腾 IndexNow API……说实话,搜索引擎收录这种话题其实挺无聊的,但你搜不到自己的博客?那可不行!

再往前看,别让 AI 替你捣乱——面向零软件工程经验新人的指南 也是急躁驱动的产物。看到仓库被噪音 PR 轰炸,GitHub 频频崩溃,实在是忍不下去了,连夜写了一篇指南。这种看不下去所以自己动手的冲动,就是急躁美德的最好体现。

但今天的 AI 时代,出现了一种变味的急躁——不断鞭策 AI 去做、再去做,自己只负责按回车。有种自己当上了只会催进度的领导,而 AI 才是真正写代码的人的感觉。说实话,这不是 Larry Wall 说的急躁美德。Larry Wall 的急躁是自己上手修,AI 时代的这种急躁是催别人修。一字之差,天壤之别。


第三美德:傲慢

傲慢是那种我写的东西别人挑不出毛病的骄傲。Larry Wall 说这是会被宙斯雷劈的品质,但在编程世界里,它恰恰是质量保证的驱动力。

作为开源爱好者,这条我深有体会。从最早的 hexo-theme-wang:一个简约的暗色主题,到后来的 Stalux Astro 博客主题自荐,每一次换主题本质上都是我觉得我可以写一个更好的。尤其是 Stalux,从 Hexo 迁移到 Astro 之后,博客主题的软著下来了,拿到了国家版权认证——这种我的作品值得被保护的感觉,怎么说呢,确实带着点傲慢。

最近一个例子是 我做了一个现代 Web 版本的标签云,支持 3D 旋转、图片视频嵌入。市面上标签云组件那么多,但我偏要自己造一个。不为别的,就是因为别人的实现不够好

但傲慢不止于自己造轮子,也体现在给别人的项目挑毛病、提 PR。比如我给 VitePlus 提的 一个小贡献——给 vp create 加了模板预设,没想到竟然上了 Highlights。说实话,想到以后会有人复用我写的这段模板,确实有点小激动。这不就是傲慢吗——觉得自己的代码值得被成百上千的人用。

同样还有 Waline 被莫名索引问题解决。Waline 的首页被搜索引擎索引了,按理说应该有 robots.txt 挡一下,但因为没有正确声明静态资源路由,导致 robots.txt 形同虚设。我顺着 Vercel 的 rewrite 规则和正则一路排查,最后提了两个 PR 把这事修了。这事说白了就是:你这个评论系统的路由设计有问题,我来帮你改好。——这不叫傲慢叫什么。


结语

回过头来看,这三大美德之所以能穿越三十年依然是经典,是因为它们描述的不是具体的技术,而是优秀程序员的内在驱动力

AI 可以写自动化脚本、可以排查 bug、也可以反复迭代一个开源项目——agent 自动化水平已经到了这个程度,技术上没什么是它不能做的。但三大美德描述的从来不是行为,而是行为背后的情感冲动:忍不了、看不惯、懒得做。AI agent 可以模仿这些行为,但它不会真的忍不了,不会真的看不惯,更不会真的懒得做——它只是忠实地执行指令。而三大美德之所以是美德,恰恰在于那种亲手做事的烦躁、焦虑、骄傲,是由内而外涌出来的,不是被 prompt 出来的。

古法时代的非遗文化之所以值得考据,不是因为它技术先进,而是因为它描述的是一种态度。一种我在追热点追到眼花缭乱时,需要回头看一眼的态度。三大美德如此,GNU、GPL、GPG、自由软件……皆是如此。

Laziness, Impatience, Hubris. —— Larry Wall,1991

十年前没人帮你写代码,十年后 AI 替你写。但十年前踩过的坑,十年后 AI 替你踩不了。 —— 一个还在折腾博客的学生

回顾经典-程序员的三大美德

作者:xingwangzhe

本文链接: https://xingwangzhe.fun/posts/programmers-three-virtues/

本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

留言评论