代码痛苦随笔

我盯着屏幕,光标一闪一闪的,像一只不知疲倦的眼睛,嘲弄地眨着。它已经闪了四十分钟了。四十分钟前,我信心满满地写下第一行代码;四十分钟后,那片空白依旧空白,只有光标在跳舞。

我想起刚学编程的时候,老师说:“计算机是最诚实的,你告诉它什么,它就做什么。”我当时觉得这话透着一种朴素的浪漫。现在想来,这大概是我听过的最大的谎言——或者说,最残忍的真话。因为当程序不按你想的那样运行时,你才发现自己其实根本不知道自己在“告诉它”什么。

昨天我花了三个小时找一个bug。三个小时。其间我重启了五次编辑器,清理了三次缓存,咒骂了两次操作系统,泡了一杯咖啡,喝了一口,忘了喝剩下的,又泡了一杯。最后发现是一个分号写成了中文全角。一个分号。它静静地躺在那儿,像一根细小的鱼刺,卡在喉咙里,不致命,但让你每次吞咽都疼。

这种事发生过太多次了。多到我开始怀疑自己是否适合写代码。每次解决一个bug,我都会短暂地快乐一下——像个傻子似的对着屏幕笑,仿佛刚刚完成了一件了不起的事。然后下一个bug立刻浮现,像打地鼠游戏里永远冒不完的塑料老鼠。我的快乐如此廉价,我的痛苦如此绵长。

我有时会想,写代码的痛苦究竟从哪里来。

也许是因为它要求绝对的精确。人类的语言是模糊的、诗意的、充满歧义的。“差不多”“大概”“应该”“可能”——这些词在日常对话中游刃有余,在代码里却寸步难行。你写“大概”,它就说“意外”;你写“应该”,它就说“未定义”。你得把自己掰碎了,捏成计算机能理解的形状,像把一滩水装进方形的盒子。

也许是因为它永远不给反馈。写文章,你能感觉到流畅或阻塞;画画,你能看见色彩与线条在纸上生长。但写代码,你面对的是一堵沉默的墙。你敲下文字,它不说话。你按下运行,它不说话。它要么给你一个结果——对了或错了,要么给你一个错误——但那个错误往往指向一个你从未想过的方向,像一个答非所问的回声。

更也许,是因为我们花了太多时间在一个不存在的世界里。变量、函数、对象、类——这些东西没有重量,没有气味,没有触感。你无法用指尖触摸一个bug,无法用耳朵听见内存溢出。所有的痛苦都在脑子里发生,在想象中发酵。这种虚幻感让人窒息,像在一个没有镜子的房间里寻找自己的脸。

有朋友问我:“你写代码的时候在想什么?”我回答:“在想我为什么要写代码。”这不是玩笑。每一次艰难地调试,每一次试图理解一段令人费解的文档,每一次在凌晨三点对着崩溃的程序发呆——那个问题都会准时出现,像个不请自来的老朋友。

可是奇怪的是,当它最终跑起来的时候——当那个小小的、倔强的程序终于在屏幕上吐出正确的结果时——所有的痛苦都消失了。就在那一瞬间。像一个漫长的雨天之后突然放晴,像一扇紧闭的门忽然打开。你看着那些自己亲手敲下的字符,觉得它们美得不可思议。它们像一群散落的星辰,忽然连成了星座。

然后你会想:也许再写一个吧。

然后那个问题又会回来。然后那个光标又开始闪烁。然后你又在深夜里,和一个看不见的bug搏斗,像堂吉诃德冲向风车。

我把咖啡杯推到一边,重新把手放上键盘。屏幕上的光标还在闪。四十二分钟了。它安静地,耐心地,一闪一闪地,等着我再次走向痛苦,也走向那短暂而耀眼的光。

我叹了口气,开始打字。

这一次,这个分号一定是英文的。

posted @ 2026-09-11 17:26  寒夏风雨  阅读(8)  评论(0)    收藏  举报