书架最里头,躺着本《Delphi2005程序设计教程》。封皮卷得跟咸菜干似的,灰厚得能掐出水。我把它拽出来,真不是脑子进水想转行敲代码。纯粹是闲得发慌。你说咱们每天在屏幕上戳的窗口、点的按钮,到底咋一块块拼出来的?就图个明白。

翻开书,好家伙,没扯什么“三天精通”的大饼。作者就着Delphi的老黄历,把Object Pascal的语法掰开揉碎,一句句喂给你。头两章?真熬人。大括号、分号、关键字密密麻麻挤在一起,看得我太阳穴突突直跳。不过,翻着翻着,心反倒静了。书上印着“由浅入深、循序渐进”八个字。现在市面上的技术书,这词儿基本就是糊弄人的排版口号。但这本旧教材偏不。它不催命。一块砖一块砖地往你手里塞。等你踩稳了,再递下一块。现在的人,耐心早被磨没了。这种笨功夫,反倒成了稀缺货。

真正把我按在椅子上的,是讲异常处理那章。作者用大白话,教你怎么写try...except块。怎么兜住报错,怎么给程序留条后路。我盯着那段代码,琢磨了快半小时。机器这玩意儿,不跟你置气。你给它什么逻辑,它就死磕什么逻辑。没留退路?闪退。走人。连个招呼都不打。咱们人呢?惯了硬顶,惯了把烂摊子当家常便饭。真崩盘了,才抓瞎。书里冷冰冰地教你,预设“搞砸了咋办”。反倒让人觉得踏实。允许出错,根本不是认怂。是给自己留条活路。就这么简单。

书后头跟着一堆上机实例。我硬着头皮,照敲了一段窗体程序。三十多行代码吧。光看不练假把式。手一上键盘,立马抽风。漏个冒号,事件绑定对不上。程序要么装死,要么蹦出一堆乱码。火气蹭蹭往上冒。只能对着屏幕死盯,嘴里嘟囔作者那句:“仔细检查你的事件处理器。”删了重写。再跑一遍。等那个空窗口终于老老实实蹦出来,我压根没觉得多爽。就是长长地吐出一口浊气。不像干了什么大事。倒像闹市里,突然听见自己喘气儿。说句实在话,敲代码这事儿,挺反人性的。它不奖励聪明人。只惩罚粗心鬼。

琢磨琢磨,过日子跟拖拽控件,简直是一个德行。把老习惯拖进来,划好界限,绑上日常琐事。指望它们乖乖触发。可现实这玩意儿,从来不按说明书出牌。书里没教怎么对付不可控的变量。它只管把能写的规矩,立明白。行吧。工具书也就这德行。不替你蹚浑水,不包治百病。只负责把工具箱,扔你脚边。剩下的,还得你自己跟生活死磕。

说实在的,书里的界面截图早泛黄了。现在的软件,压根认不出这长相。Delphi 2005,更是被新框架甩出几条街。连个靠谱的安装包,都难找。可我不觉得它落伍。它就是个实打实停在2005年的老物件。不赶时髦,不硬蹭情怀。它教你怎么调bug,怎么一步步把线头理顺,怎么在报错的时候别慌神。这些看着笨的功夫,未必适合现在的快节奏。但在眼下这浮躁日子里,反倒成了最金贵的东西。毕竟,框架三年一换。底层的逻辑,从来没变过。

合上书。屏幕早黑透了。屋里静得,能听见冰箱压缩机响。我没练成什么大神。也压根没打算接什么大项目。就是突然明白。不管是敲代码,还是过日子。图的根本不是永远不报错。那是不可能的。图的是,每次红灯一亮,还能耐着性子,坐回桌前。一行一行地抠下去。这事儿。大概也就咱们自己懂。