如果一千年后的人看到了我们的Hello World

18小时前

文/一个偶尔想象未来考古场景的人

考古学家在某个古老的洞穴里发现了一幅壁画——一只线条粗犷的野牛,旁边有两个小人举着长矛。他们不知道画这幅画的人是谁,不知道这个人长什么样、叫什么名字、活了多久。但他们知道一件事:这个人想告诉后来的人,他曾经在这里,他见过牛,他打过猎。

那个画在洞壁上的野牛,就是那个人的Hello World。

我有时候会想,如果一千年以后的人,翻到了我们留下的数字遗迹,他们会在那些0和1的废墟里,看到什么?

他们可能会找到很多被压缩的、被加密的、被编译成机器码的东西。那些东西对一千年后的人来说,大概跟乱码没什么区别。但在某个角落,在某个没有被完全覆盖的硬盘扇区里,他们可能会找到一段纯文本的代码,上面只有短短的一行:

print("Hello, World!")

他们不需要懂编程语言,不需要懂Python的语法,不需要知道”print”是什么意思。他们只需看到”Hello”和”World”这两个词,就能大概猜出——这是一句问候。这是一个人在对另一个人,或者说对”整个世界”说话。

那幅洞壁上的野牛,和这行代码,在做同一件事。都在告诉后来的人:我在这里,我存在过。

那些旧石器时代的”Hello World”

人类在学会写字之前,就已经在岩壁上留下了问候。法国拉斯科洞窟里的野牛壁画,距今一万七千年。画它的人没有文字可以写,不能留下一句话说明”这是谁画的”,他只是画了一头牛。

但那头牛本身,就是一句话。它在说:”我看到过野牛,我记得它的样子,我把它画下来了。我在这里。”

从岩壁到甲骨,从泥板到竹简,从羊皮纸到印刷纸,再到今天的硬盘和云端——人类用来”说Hello”的载体一直在换,但那个”想让别人知道我来过”的念头,从来没有变过。

今天我们用代码说Hello,跟一万七千年前的人在岩壁上画野牛,动机上是同一回事。都是在用当时最先进的”技术”,给后来的人留一个信号——”这里有个人,他想跟你说话”。

那些写在时间边界上的问候

人类一直在做”向未来打招呼”这件事。

古埃及人在金字塔的石壁上刻满了象形文字,那是他们对自己死后千年的人说的话。巴比伦人在泥板上刻下楔形文字,记录他们的法律和天文观测。中国人在甲骨上刻字,占卜吉凶,然后把那些龟甲埋在土里,几千年后被人挖出来。

那些刻在石头和骨头上的文字,都是他们那个时代的”Hello World”。内容不一定都是问候,有些是记账、有些是发令、有些是祈祷。但它们的本质,都是在说一句话:”我们在这里,我们做了这些事,我们希望以后的人能看到。”

我们今天写代码,本质上也是在做同样的事情。我们把指令写在硬盘上,运行在服务器里,部署在云端。我们当然知道这些代码的运行寿命可能只有几年,但我们还是在写。因为除了”实际功能”之外,还有一种说不清楚的冲动——想把”自己做过的东西”留下来。

那个”留下来”的冲动,就是岩壁画野牛的冲动,也是今天写Hello World的冲动。

那个”所有人都能读懂的符号”

岩壁上的野牛,不需要翻译。任何人看到它,都知道那是野牛,知道有人在很久以前看到了它、画下了它。跨越一万七千年,信息依然可读。

“Hello, World!”也是这样一个不需要翻译的符号。一个阿拉伯程序员写的”Hello, World!”,跟一个巴西程序员写的,跟一个中国程序员写的,跟一个肯尼亚程序员写的,一模一样。它不需要翻译成任何语言,因为它本身就是”跨越一切语言”的语言。

这个特征,在整个人类历史上都非常罕见。你很难找到第二个符号,能在几十个国家、几百种语言、几十亿人中间,被如此一致地理解和复制。两千年前的人用希腊字母写的文字,今天只有专家能读。但五十年后的人看到”Hello, World!”,大概率能看懂。

不是因为这句话有多简单,而是因为这句话被重复了太多次。它已经不是一个普通的英文句子了,它变成了一个”固定标记”。就像十字架、心形、笑脸符号一样,它已经脱离了它原始的语境,变成了一个独立的、全球通用的符号。

那个符号的意思是:有人在跟”世界”说话。谁说的不重要,用什么语言说的不重要,重要的是”说话”这个行为本身。

那个”不期待回复”的问候

岩壁上的野牛,不期待任何回复。画它的人早就死了,他画的时候就知道这一点。他还是画了。

“Hello, World!”也不期待回复。你写了它,运行了它,看到了它,然后呢?然后就没有然后了。它不是一句”请回答我”,它就是一句”我在这里”。它不要求后续,不期待反馈,不需要回应。它就是一个独立的、完整的、自洽的行为——我来了,我打了个招呼,就这样。

这种”不期待回复”的姿态,在人类的”打招呼”行为里其实不太常见。我们平时说的”你好”,通常是在期待对方回一句”你好”。但Hello World不期待任何回复。它说了就是说了,你看不看、回不回,它不在乎。它只是一个信号,一个标记,一个”我存在过”的证明。

这种姿态,跟岩壁画野牛的人是一样的。他画那头牛的时候,没想过要得到什么回应。他只是想留下一个”我见过这个”的记号。一千年后有人看到了,明白了,那就够了。没人看到,也没关系。

那个”我们都在做同一件事”的认知

我后来想,如果一千年后的人真的发现了我们的代码,看到了”Hello, World!”,他们会怎么理解我们?

他们可能会觉得,这是一个奇怪的民族。他们用一种叫”编程语言”的东西交流,他们给计算机发号施令,他们造出了很多复杂的系统。但所有这些复杂性里,最常被写下的,却是一句最简单的问候。

他们可能会因此推断,我们是一个”喜欢打招呼”的物种。不管做什么大事之前,都要先打一声招呼。打完了,才开始干正事。

这个推断,其实还挺准的。

我们确实是一个喜欢打招呼的物种。进一个新群,先发个表情包。进一个新团队,先做个自我介绍。到一个新城市,先拍张地标发朋友圈。开始做任何一件新的事情之前,总要先有个”我来了”的信号。

Hello World,就是程序员做任何新事情之前的那个”我来了”。

那个”会一直往下传”的句子

岩壁上的野牛传了一万七千年,靠的是石头上的颜料和岩洞的干燥。纸质书上的文字传了几百年,靠的是印刷术和图书馆。数字时代的”Hello, World!”能传多久,可能取决于我们怎么保存它。

如果只是放在硬盘里,可能几十年就读不出来了。但如果它作为一种”活传统”被一代一代写下去,它可能比任何硬盘都活得久。

因为每一个新程序员在学第一门语言的时候,都会写下这行字。这个动作本身,就是一个”传递”的过程。你不知道你是谁教的,你不知道你传给了谁,但你知道”我写过,后来的人也写过”。这个链条只要不断,那句问候就会一直存在。

一万七千年后,如果人类还存在,他们大概还会在某个”新东西”的起点上,写下类似的一句话。内容可能不是英文,形式可能不是代码,但那个动作——在开始之前先说一声”我来了”——应该还在。

因为那不只是程序员的习惯,那是人类的习惯。从岩壁到终端,从野牛到World,内容变了,载体变了,但”有人在说’我在这里'”这个信息,从来没有断过。