代码与哲学

作者: 后知晚觉 | 来源:发表于2021-06-19 07:13 被阅读0次

    新冠肺炎不断使全球经济受挫,更有很多鲜活的生命因此戛然而止。如果不心存侥幸,假设在明天,我的生命也因此被定格,试问,我生命的意义何在?如果不是疫情,或早或晚,我们生命终将到达终点,试问,那时我们生命的意义何在?无论疫情与否,既然终点是一样的,那我们现在的意义又在哪里?亦或者,一款产品,也终有生命周期结束的一天,或者它不再被用户需要,或者被企业内外部创新拍倒在沙滩,那试问,这产品现在的意义何在?同样的,既然产品归宿如此,它所依托的代码是不是也难逃此问?

    代码的本质

    暂不提产品代码的归宿问题,我们先来聊聊代码的本质。
    记得刚刚毕业的头几年,我也是一腔热血的幻想着代码改变世界,当然结局毫无悬念。这绝非是曾梦想仗剑走天涯,后来有事儿没去上那么简单,被现实和残酷的市场教育过后,开始思考代码的本质问题,代码的本质是什么?以什么样的姿势写代码,软件才是有价值的?
    如果足够耐心观察,你会惊讶的发展,这些所谓流行软件并没有创造什么,它所完成的业务一直都存在,只是通过软件优化了原有的业务,或者它提升了原有业务的效率,或者降低了原有业务的成本。
    游戏娱乐的本质存在几千年了,只是形式不同而已,运力的需求也一样,只是从人力到马力再到车、船、飞机。通信事业从基本靠吼辗转再到无线电。如果从这个角度看,用户需求绝非是善变的,相反确是极其稳定的,只是随着技术的发展实现方式不同。正如亨利·福特所说的,“如果我去问顾客他们想要什么,他们肯定会告诉我:一匹更快的马”。因此。我们要做的,就是用技术提升客户原有业务的效率。也因此,一切不以提升既有业务效率为目标的代码都是耍流氓。

    代码与世界

    一切不以提升既有业务效率为目标的代码都是耍流氓。这么说似乎有些泛泛,也略显浮躁,似乎从生直接谈到了死。其实,从代码辗转到软件的本质,过程中还需要经历人间疾苦五味杂陈,即代码、软件架构、业务、商业架构的层层递进。代码只是处于这个链条的最末端,需要在软件架构的约束下,满足业务需求,进而达成商业目的。似乎代码要层层服从,但谁又能保证上层设想不出问题呢,而有时候屌丝程序猿们的确掌握着现有科技体系中最先进的技术,毕竟在枪炮下,再出色的人肉战术策略都显得那么幼稚。
    所以,代码就是以这样的矛盾而又骄傲姿态存在于这个魔幻的大世界里。

    再谈意义

    从造物主的视角看我们自身,我们不过是她写出的程序,有逻辑可言,但也存在bug。她在不断的创造(new)和销毁(delete)我们。我们的人生只对她有意义,是为了完成造物主某些期待。就像我们养猪,在我们看来,猪生只对我们有意义,猪生对猪来说是没有意义的。
    既然没意义,是不是我们就应该就此放弃努力了?显然,刚刚偷换了概念,从造物主的视角看我们自己,人生对于我们是没意义的。但毕竟我们不是造物主,而是我们自己。那从我们自己的视角看,人生的意义在哪里?
    很显然,“对于人生本质上的虚无性的认识,很容质使人们走向两个极端。一是禁欲和厌世,像印度佛教那样。另一是极端世俗化,政治冲动横行,或沉湎于官能享乐,如帝国时期罗马人之所为。处在印度和罗马之间,受两者的诱惑而不得不做出抉择,希腊人居然在一种古典隧纯粹中发明了第三种方式外,这就是用艺术,尤其是悲剧艺术的伟大力量激发全民族的生机。艺术拯救了他们,生命则通过艺术拯救他们而自救。”(这段文字摘自 悲剧的诞生)
    所以,艺术是一种赋予我们生命意义的一种相当合适的方式。
    孔圣人的家国天下的礼仪,是艺术。为了信仰慷慨赴死的勇士,是艺术。为了事业奉献青春,为了爱情奋不顾身,是艺术。
    所以,能不能活出艺术感,就是人生的意义所在。显然人生的意义是我们主观想象出来的,而这主观的想象取决于现在的你和过去的你,取决于过去你读过的书、走过的路、写过的代码。而过去的都过去了,所以人生的意义只取决于现在,取决于现在你读的书,走的路,写的代码和bug。
    所以,我们的意义与代码同在,我们的意义与bug同在,而不管疫情过去与否。
    所以,我们开发的产品的意义与代码同在,与此刻的用户需求同在,而无论疫情过去与否,无论产品未来是否被公司内外部创新拍倒在沙滩。
    也或许现在的疫情就是每个人人生意义的一部分,因为很多人在疫情中活出了艺术,活出了意义,也因为疫情,很多人懂得了生命的意义是什么。
    所以,所有你正在经历的,或是疫情,或是代码,或是bug,都是意义,它们能决定你未来生命的艺术分量几何,因为,它是现在,不是吗?

    相关文章

      网友评论

        本文标题:代码与哲学

        本文链接:https://www.haomeiwen.com/subject/zsdryltx.html