文/一个在键盘前坐了足够久的人
上个月,我去参加了一个老程序员的退休聚会。他在一个单位干了三十三年,从最早的DOS时代一路写到云原生,经历过十几轮技术更替,带过上百个新人。
聚会上有人问他,写了这么多年代码,回头看最满意的是哪个作品。他想了很久,说:“最满意的,可能是我第一天上班写的那段Hello World。”
大家都笑了,觉得他在开玩笑。他没有笑,继续说:“后来那些大系统一个接一个换掉了,改掉了,下架了。但那个Hello World我一直留在我的文件夹里,从来没改过。它比任何系统都活得久。”
说这话的时候,他语气很平静。但那个瞬间,我觉得他说的可能是真的——他那一辈子写的代码,最值得记住的,确实可能是那第一行。
那条“从入行写到离场”的线
他后来跟我讲了一些细节。他说他第一天进公司的时候,带他的师傅给了他一本手册,让他先写个程序试试编译器好不好用。他就在那台老电脑上敲了第一段代码,输出“Hello, World!”。然后他把那个文件保存了,名字叫“test.c”。
那之后,他换了十几台电脑,换了好几个操作系统,换了好几家公司(中间跳过两次槽),但那个“test.c”文件他一直带着。从一个硬盘复制到下一个硬盘,从一个目录复制到下一个目录。它没有任何实际用途,就是摆在那里。
“它像一根线,”他说,“一头连着第一天坐在电脑前面的那个年轻人,一头连着今天坐在你们面前的这个老头子。中间三十多年,所有的代码都可以被替换、被删除、被遗忘,但那根线没断过。”
我问他,那个文件现在还在吗。他说在,在他现在用的电脑里,路径是“/home/old_code/test.c”。三十三年了,大小还是那一百多个字节,一次都没改过。
那个“一直在,但没有人看过”的文件
他打开那台电脑给我看了一眼。我看到了那个文件,创建日期是1993年。里面就是最标准的那几行C语言代码——#include <stdio.h>,main(),printf,return 0。没有任何注释,没有任何多余的东西。
三十三年里,可能有几百个人在那家公司进进出出,可能几十个系统上线又下架,可能硬盘换过无数块。但那个文件从来没有被打开过,除了他自己。它就一直静静地坐在一个角落,像一个从未被阅读的日记本,但主人知道它在那里。
“你有没有想过,如果哪一天这个文件丢了怎么办?”我问。
他说:“想过。我有一个U盘里备份了它,还有一个在云盘里。不是因为它有多重要,它其实一点都不重要。我只是不想断了那根线。”
他说“那根线”的时候,用了跟第一次说时一样的口吻——像在说一件很普通、但也挺认真的事。
那个“后来的人都不知道”的故事
他说他退休之前,把那个文件发到了他们公司的内部技术群里,附了一句话:“这是我三十三年前的第一行代码。”
群里很多人回复了“致敬”、“前辈”、“厉害”,但他知道大多数人其实没有仔细看那个文件。他们只是觉得这是一个退休老干部在发怀旧内容,礼貌性地回复一下。
但他说,有一个年轻同事私下给他发了消息,说他把那个文件打开看了,编译了一下,跑了一下,看到了输出。他问:“这个程序真的跑了三十三年吗?我的意思是,这行代码在三十三年后的电脑上还能跑?”
他说:“你刚刚跑成功了,你说呢?”
那个年轻同事后来写了一篇博客,标题叫《在三十三年前的代码面前,我沉默了》。他说他一开始以为那个程序肯定需要改点什么才能在新系统上编译,结果一行没改,直接通过了。那一刻他意识到,他花了很多时间学的那些框架、工具、最佳实践,可能都活不了三十三年。而那段最原始的代码,反而活到了今天。
那个“不为什么,就是留着”的动作
我后来一直在想,为什么要把一个Hello World留三十三年?
它不是一个有用的文件。它不帮任何系统运行,不解决任何业务问题,不给任何人带来任何价值。它就是一个三行的小程序,没有任何“留存”的必要。
但他留了。也不是为了给别人看,不是为了炫耀,不是为了任何“展示”的目的。他就是留了,像一个旧物件一样,放在抽屉里,不展示,不丢掉,偶尔翻到的时候看一眼,然后又放回去。
这种“不为什么的留存”,在成年人的生活里其实很少见。我们保留的大部分东西都有理由——有用、有意义、有价值。但有些东西没有任何理由,它就是你的一部分历史,你只是不想让那段历史凭空消失。
那个文件,对别人来说是一段三行的代码。对他来说,是一段他自己走过来的路。他看到那个文件,就会想起第一天上班时的紧张、第一台电脑的型号、第一次写程序成功时的心情。那些记忆不需要对任何人解释,不需要被任何人理解。它们就装在那个一百多个字节的文件里,安安静静的。
那个“最终回到原点”的姿态
他退休那天,从公司电脑里拷贝了最后一批个人文件。他说他坐在电脑前面,想了一会儿,然后做了一件事——在公司的最后一个文件夹里,写了一个新的Hello World。不是用C,是用他现在最常用的Python。保存了,然后关掉了电脑。
他说那个文件他没有带走,留在了公司的服务器上。“我的第一行代码,是在这里写的。最后一行,也想留在这里。”
这件事让我想了很久。他在那个公司写过的所有代码——系统、模块、服务、工具——最终都会被新代码覆盖、替代、删除。只有那个他入职第一天写的“test.c”和他退休最后一天写的“hello.py”,会被以一种特殊的方式记住。
第一个和最后一个,中间的三十三年,都属于公司。只有首尾两端,属于他自己。
我后来跟别人讲这个故事的时候,有人问:“那他留给那个公司最珍贵的东西是什么?”我一开始想说是一套架构、一个系统、一个工具——他确实留下了一些技术上的东西。但后来我想了想,觉得都不太对。
他留下最珍贵的东西,大概就是两个文件。一个在1993年创建,一个在2026年创建。一个在开头,一个在结尾。中间隔了三十三年,隔着十几代技术浪潮,隔着几百个同事的来来往往。
那两行代码,比他写的任何大系统都更能说明“这个人在这个地方待了三十三年”这件事。一个系统可以被替换,一个模块可以被重构,一个工具可以被淘汰。只有那两行“没有任何实际功能”的代码,才能完整地标记出“他从这里开始,到这里结束”的轨迹。
那个每个人都会走的路
我后来想,如果有一天我也到了该离开的时候,我会做什么。
我大概也会打开一个空白文件,写一行Hello World。然后保存,关掉,不再改动它。
不是因为它有什么特别的意义。只是因为它是我第一天写的东西,也应该是我最后一天写的东西。中间的所有东西都可以被遗忘、被覆盖、被删除,但起点和终点这两行,应该留在它们该在的地方。
一个人在一个行业里待了一辈子,能留下的东西其实不多。大部分作品会随着时间流逝而消失,大部分成就会被后来的成就所覆盖。只有那个“我在这里开始”的标记和“我在这里结束”的标记,是完整属于一个人的。
那个1993年的Hello World,跨过了三十三年,遇到了一行2026年的Hello World。它们之间隔着一个人所有的代码、所有的项目、所有的深夜。它们不会说话,它们只是在那里——像两棵树,一棵种在入口,一棵种在出口,隔着一整片森林。
那个人穿过森林,从一棵树走到了另一棵树。然后回头看了一下,关上门,走了。