人生的意义(程序员篇)
关键词:无自性、赋值、new操作、继承、宇宙根函数、精神能量、纪念碑
前言
如果人生是一场编程,你会怎么写这段代码?
这个问题听起来有点奇怪,但仔细想想,我们每个人确实都在写一段叫做“人生”的程序。有的人写的是Hello World,简单跑完就结束;有的人写的是复杂的算法,层层嵌套,影响深远;有的人写的是死循环,困在自己的情绪里出不来;有的人写的是递归函数,一遍遍调用自己,却始终没有返回值。
那么,这段程序的意义是什么?是代码本身,还是运行结果?是编译器给的,还是程序员自己赋予的?
这篇文章,我想用程序员的视角,聊聊这个古老又新鲜的话题——人生的意义。
一、人生本身:一段返回null的函数
先说结论:就人生而言,本身是没有任何意义的。
听起来有点丧?别急,听我解释。
就像一段代码,如果你只是写了一个函数,但没有调用它,没有给它传参,没有让它和外界交互,那它就只是一段躺在文件里的文本。它有意义吗?有,作为文本它存在;但没有,因为它没有产生任何作用。
人生也是这样。单纯地“活着”,吃饭、睡觉、工作、死亡,这个过程本身就像一段没有返回值、没有副作用的函数——它运行了,结束了,仅此而已。
用程序员的术语说:人生的意义,初始值是null。
null不是0,0还有数值,null是什么都没有。人生来的时候,意义这个变量是空的,等着被赋值。
这就是为什么有些人活得浑浑噩噩,因为他们从来没有给自己的生命赋值;有些人活得轰轰烈烈,因为他们赋了一个很大的值;还有些人活得拧巴,因为他们赋的值和自己的底层代码冲突了。
二、被赋值的人生:从null到有值
那么,谁来给人生赋值?
答案是:自己、他人、时代、历史,共同参与赋值。
你每做一个选择,就是在给自己的人生变量赋一次值。你今天决定早起读书,赋值了“勤奋”;你明天决定躺平摆烂,赋值了“懈怠”。这些赋值是即时的,也是累积的。
更重要的是,他人也在给你赋值。你做了一件好事,别人说“这人善良”,这是赋值;你做了一件坏事,别人说“这人卑鄙”,这也是赋值。这些赋值会汇聚成一种东西——口碑、名声、评价,最终成为你在他人心中的“存在”。
岳飞的人生,被赋值了“精忠报国”“一身正气”“骁勇善战”“文武双全”。这些赋值不是岳飞自己写的,是后人加上去的。但他用一生的行动,提供了被这样赋值的“接口”。所以他虽然只活了39岁,但900年后的今天,我们提起岳飞,那些赋值还在生效。
秦桧的人生,被赋值了“不忠不义”“阴险狡诈”“卖国求荣”。站在他自己的角度,他可能有完全不同的解释——维护和谈、稳定局势、保全家族。他给自己赋值的是“务实”“理性”“为国谋和”。但历史的赋值权不在他一个人手里,后人给了另一个版本。
这说明什么?说明人生的意义不是单方面决定的,是一个多方参与、动态更新的过程。你给自己赋值,别人给你赋值,时代给你赋值,历史给你赋值。最终那个值,是所有这些赋值的加权平均——或者说,是这些能量汇聚后的结果。
三、精神能量的物质化:看不见的“纪念碑”
有意思的是,这些赋值并不是虚无缥缈的。
当一个人的人生被赋予某种意义,这种意义就会转化为一种精神能量。当很多人的这种能量汇聚在一起,它会变得越来越强,甚至可能物质化——不是变成金子银子,而是变成一种看得见摸得着的东西。
比如岳飞的“精忠报国”,最终物质化成什么?化成了杭州的岳王庙,化成了西湖边的岳飞墓,化成了“青山有幸埋忠骨,白铁无辜铸佞臣”的对联,化成了无数人前去瞻仰、跪拜、沉思的那个空间。
比如孔子的“有教无类”“因材施教”,物质化成什么?化成了遍布全球的孔子学院,化成了两千多年来无数学子诵读的《论语》,化成了“天不生仲尼,万古如长夜”的文化认同。
这就是我说的精神能量的物质化——它会产生一座“纪念碑”。这座纪念碑可能是实体的建筑,可能是流传的文字,可能是口耳相传的故事,也可能只是人们心里那个共同的情感空间。但无论形式如何,它承载的精神力量会感染后来者,影响一代又一代人的人生。
而那些没有被赋值、或者赋值太弱的人生,就像没有留下任何痕迹的代码,运行完就删除了,连日志都没存。从宇宙的角度看,它们存在过,但相当于不存在。
四、宇宙的根函数:人生的意义在于new
说到这里,你可能要问:有没有一个更终极的赋值者?有没有一个代表宇宙整体的规则,来定义人生的意义?
答案是:有的。在宇宙这个超级操作系统里,有一个“根函数”。
这个根函数给所有人生设定的底层意义是——new。
是的,就是编程里的那个new操作。
为什么要new?因为在宇宙看来,最可怕的事情不是错误,不是bug,而是重复。如果一个宇宙只会重复已有的东西,那它就是死宇宙,没有活力,没有进化,没有惊喜。
所以,根函数的逻辑是:每一次生命的诞生,都应该是一个new操作。
- new,意味着在继承的基础上,创建新的实例
- new,意味着可以添加新的方法和新的接口
- new,意味着可以尝试新的玩法、新的路径、新的可能性
你的人生,就是一次new操作的结果。你继承了人类的底层代码——生存、繁衍、情感、理性,这些是父类给的。但你有自己的属性和方法——你的性格、你的选择、你的创造,这些是你这个实例独有的。
如果你活了一辈子,只是在重复别人已经写过的方法,调用别人已经写好的接口,那你的这次new就浪费了——你没有贡献任何新东西。
但如果你创造了一些新的玩法,开发了一些新的接口,为后来者提供了新的可能性,那你的这次new就是有意义的。因为你增加了宇宙的“方法库”,让此后的人生可以有更多的选择。
这就是宇宙视角下的人生意义:每一次new,都是为了增加宇宙的丰富性。
五、随业受报 vs. 主动创造
从这个角度看,人生的选择其实只有两种:
一种是随业受报,一种是主动创造。
随业受报是什么?就是你的人生在重复运行已有的代码。你被业力推动,被惯性带着走,遇到好事就高兴,遇到坏事就痛苦,但从来没有跳出过这个循环。你在老的方法里运转,没有new出任何新东西。
这种人的人生,不能说没有意义,但意义是别人给的、环境给的、业力给的。他自己没有参与赋值,只是被动接受赋值。
主动创造是什么?就是你参与给自己赋值。你知道人生初始是null,你知道意义是被赋予的,所以你主动选择怎么活,主动创造新的可能性。你不仅调用已有的方法,你还写新的方法;你不仅继承父类,你还扩展接口。
这种人的人生,意义是自己参与定义的。即使最后别人给他的赋值和他自己期望的不一样,他至少努力过、创造过、new过。
岳飞是主动创造,秦桧也是主动创造——只不过创造的方向不同。岳飞创造的是忠义的精神范式,秦桧创造的是奸臣的角色模板。从宇宙的角度,他们都增加了“方法库”——一个加了正面的例子,一个加了反面的例子。反面例子也是例子,也能让后来者知道“这条路走不通”。
这就是为什么秦桧的人生也有意义——虽然是被后人唾骂的意义。他在宇宙里留下了一座“反面纪念碑”,提醒后人不要重蹈覆辙。
六、如何选择你的人生
现在,问题回到你身上:你打算怎么选择?
如果你想要一个轻松的人生,你可以随业受报,跟着惯性走。这没什么不好,大多数人都是这么活的。你的意义会被环境赋值,会被他人赋值,会被时代赋值。你不需要操心,只需要接受。
但如果你想要一个更有趣的人生,如果你想让自己的这次new操作留下点什么,那你需要:
第一,知道自己在赋值。 你每时每刻的选择,都在给自己的人生变量赋值。这个值不是别人写的,是你自己写的。意识到这一点,你就从被动接受变成了主动参与。
第二,创造新的接口。 不要只重复别人做过的事。想想看,有什么事情是你想做、而别人没做过的?有什么视角是你有、而别人没看到的?有什么方法是你独创、而可以留给后来者的?这些就是你的new操作。
第三,接受赋值的不确定性。 你给自己赋值,别人也给你赋值,历史也给你赋值。最终的加权平均值,不完全由你控制。岳飞的赋值里有“愚忠”的争议,秦桧的赋值里也有“务实”的辩护。你能做的,是活出你想要的那个版本,然后接受后人怎么评价。
第四,为宇宙增加一点活力。 宇宙不怕你犯错,就怕你什么都不做。错误也是数据,bug也是经验,只要你在new,你就在为宇宙的丰富性做贡献。
七、最后的代码
如果用代码来总结这篇文章,大概是这样的:
class Life {
constructor(name) {
this.name = name;
this.meaning = null; // 人生初始,意义为null
this.methods = []; // 已有的方法
}
// 给自己赋值
assign(value) {
this.meaning = value;
console.log(`${this.name} 给自己赋值了: ${value}`);
}
// 创造新方法
createNewMethod(methodName, implementation) {
this.methods.push(methodName);
console.log(`${this.name} 创造了新方法: ${methodName}`);
// 把这个方法加入宇宙的方法库
Universe.methodLibrary.push({name: methodName, code: implementation});
}
// 运行人生
run() {
if (this.meaning === null) {
console.log(`${this.name} 的人生运行完毕,意义未定义`);
} else {
console.log(`${this.name} 的人生意义是: ${this.meaning}`);
}
// 检查是否创造了新方法
if (this.methods.length > 0) {
console.log(`为宇宙贡献了新方法: ${this.methods.join(', ')}`);
}
}
}
// 你的人生实例
const myLife = new Life('你的名字');
myLife.assign('你想赋的值');
myLife.createNewMethod('你的玩法', yourImplementation);
myLife.run();
这段代码的返回值,就是你人生的意义。
结语
人生本身没有意义,这是宇宙给的自由。
正因为没有预设的意义,你才可以自己赋值;正因为初始值是null,你才可以new出无限可能。
聪明如你,一定知道该怎么选择了。
愿你的人生,不是一段默默运行的代码,而是一个为宇宙方法库贡献了新接口的创造者。
愿你离开之后,那座精神能量的纪念碑上,刻着你亲自赋值的那个词。