随笔

当我看到密密麻麻的代码的时候,我感到了厌倦,我感到这一切没有意义,于是我问了自己一个问题,我真的喜欢编程吗?我这是叶公好龙吗?

我觉得不是这样的。表面的推理看起来是这样,但好像忽略了什么。

忽略了两点。


第一点,那密密麻麻的代码很多都是可以重构的,可以更加精简的。比如(以下举例都是没有严格的时间复杂度和空间复杂度的要求)可以用switch/case就不要if/else各种嵌套、可以用一种更加高效的数据结构就不要自己设置奇奇怪怪的数据结构、可以模块化就不要全塞在一个函数里、重复的地方尽量抽象成一个单独的函数等等。许多看起来密密麻麻的代码逻辑不一定很复杂,反而往往是简单的逻辑。而看起来简简单单的代码,往往真正具有内涵。一个真正好的项目,其代码的组织是可以让人一目了然的。

更别说变量命名和缩进了,我就是再怎么热爱编程,看到一堆意大利面式的代码我也很头疼。

想起当初上C语言课的时候,黄院长告诉我们数组下标不一定非得从0开始,可以从1开始,这样可读性高。我当时还不以为然,觉得专业的程序员都应该是数组下标从0开始,现在想想,黄院长其实说得有道理的。如果可读性能有明显的提升,浪费几字节的空间也无所谓(有严格空间要求的除外,比如嵌入式编程)。


第二点,我总觉得人啊,生下来应该是享受生活、享受生命的。人应该是目的,而不是手段。正如康德所说:

“人是生活在目的的王国中。人是自身目的,不是工具。人是自己立法自己遵守的自由人。人也是自然的立法者。”

如果为了生产出什么产品而刻意的压抑人的本性,那是适得其反,丢了西瓜捡芝麻的行为。人类生产这些东西应该是服务于人类自身的,我们不应该是螺丝钉——至少我不应该是,而应该是创造者,通常创造本身就是一种奉献,但这种奉献不是刻意的,而是一种副产品。

Linus真的是为了奉献什么才搞出来的Linux吗?或者是为了挣钱才弄的吗?不是的,他只是在好奇心的引导下,想玩一玩,于是自己动手实践,在原Unix基础上进行创造,然后放在网上,让大家都可以参与进来。

我只是举个例子,其实创造的门槛一点也不高,你唱一首歌、写一篇文章、做一个甜品、甚至拍张照片发一段话,只要是基于自己的意志去做的事情,那都可以是一种创造,而这种创造本身就是一种享受的过程,无意间也会给社会作出贡献。

知乎上有个“这个世界有哪些不合理的地方?”的回答里有这么一段话:

全球总生产力已经翻了不知道多少倍了,人均下来也早就能满足一个人的基本需求,然而我们还是处在剥削的状态下每天不得不让工作占据绝大多数时间,另外还有一大批人因为没有争取到被剥削的机会而食不果腹。

某些地方未利用的土地明明还有很多,房价高绝不是因为土地不够人用,然而就是有既得利益者控制着不去开荒,使得普通都市白领终身房奴。

任何生产出来的产品都应被消费,总生产力比古代提高100倍即意味着我们比古代人多消费了100倍的商品,然而一个人的刚需是有限的,生产力的极大提高无疑意味着对人类种种欲望的挖掘和无限放大,我们不经要问:人类真的需要消费这么多东西吗?

深以为然。


说到底,其实我并不想讨论什么高深的东西,随笔罢了。人始终是变化着的,也许过段时间我又觉得人生应该奋斗,应该苦尽甘来了,又或者是其他什么,一切皆有可能。