第1章 世界静默,键盘独鸣

第1章 世界静默,键盘独鸣

褚云帆是被一阵刺耳的警报声吵醒的。

那声音像是用生锈的锯子切割金属,尖锐得能刺穿耳膜。他猛地从工位上抬起头,后颈传来一阵僵硬的酸痛------昨晚又通宵了。

眼前的世界模糊了几秒。

他习惯性地伸手去摸眼镜,手指触到冰凉的镜架。戴上。

视野清晰起来。

然后他愣住了。

深蓝科技开放式办公区的景象,和他记忆中任何一次加班后的清晨都不同。

太吵了。

不是键盘敲击声------那种清脆规律的"咔嗒咔嗒"早就消失了。取而代之的是一片混乱的、毫无节奏的敲打声,像是幼儿园小朋友在胡乱拍打玩具琴。

褚云帆揉了揉酸涩的眼睛。

他看见左侧工位的李工。

李工是公司十年的老程序员,秃顶,脾气暴躁,但代码写得极稳。此刻他正对着屏幕,双手悬在键盘上方,手指微微颤抖。他的嘴唇在动,好像在默念什么咒语。

然后他按下一个键。

"a"。

屏幕上跳出一个字母。

李工盯着那个"a",额头渗出细密的汗珠。他深吸一口气,又按下一个键。

"s"。

"d"。

"f"。

他像是在玩打字游戏,但打出来的字母毫无意义。asdfasdfasdf------一行行重复的字符在屏幕上滚动。

"不对......"李工喃喃自语,"循环......for循环该怎么写来着?"

他的手指悬在键盘上,迟迟落不下去。

好像有什么东西卡住了。

褚云帆转过头。

整个办公区两百多个工位,所有人都在做同样的事------对着键盘发呆,然后敲出乱七八糟的字符。有人试图写注释,打出来的却是"#¥%......&*()"。有人想定义变量,屏幕上出现的是"int a = ;;;;;;;;;"。

分号。

无数个分号。

像是某种集体癔症。

"谁能写个循环?!"

一声咆哮从过道传来。

主管老王站在走廊中央,四十多岁的中年男人,此刻脸涨得通红。他手里举着一台平板电脑,屏幕上是半截代码------看起来像是某个脚本的开头,但语法完全错了。

"就一个简单的for循环!"老王的声音在发抖,"迭代数组!打印数字!这他妈是实习生第一天就该会的东西!"

没人回应。

只有键盘的胡乱敲击声。

老王走到最近的一个工位,抢过员工的键盘。他深吸一口气,手指放在键盘上。

然后僵住了。

他的嘴唇在动,好像在回忆什么。几秒钟后,他开始敲击。

for (i = 0; i < 10; i++)

打到"i++"时,他停住了。

"加加......"老王盯着屏幕,"是i++还是++i?前置和后置有什么区别来着?"

他想了五秒钟。

然后删掉了整行。

重新打。

for (int i = 0; i < 10; i = i + 1)

这次语法对了。

但老王盯着那行代码,眼神空洞。他好像不记得接下来该写什么了。大括号?语句块?打印函数?

他的手在颤抖。

最终,他敲下一个分号,结束了这行代码。

for (int i = 0; i < 10; i = i + 1);

一个空循环。

毫无意义。

老王把键盘扔回桌上,发出"砰"的一声。他环顾四周,眼神里第一次出现了褚云帆从未见过的情绪。

恐惧。

"你们......"老王的声音低了下来,"你们都忘了吗?"

没人回答。

褚云帆低下头,看向自己的屏幕。

他的终端还开着。昨晚通宵重构的那个模块,代码还停留在编辑器中。三百多行,结构清晰,注释完整,是他花了六个小时精心打磨的。

他下意识地滚动鼠标。

代码正常显示。

没有乱码。

他愣了一下。

然后,几乎是出于本能------程序员的本能,那种写完代码总要测试一下的本能------他新建了一个文件。

手指放在键盘上。

肌肉记忆开始工作。

他甚至没有思考,指尖就动了起来。敲击声清脆、连贯、有节奏,和周围那片混乱的噪音形成鲜明对比。

print('Hello World')

回车。

屏幕下方,终端窗口弹出。

清晰的白色字体显示在黑色背景上:

Hello World

成功了。

褚云帆盯着那行字,看了三秒钟。

然后他猛地抬起头。

办公室里突然安静了。

不知道从什么时候开始,所有人都停下了手里的动作。键盘声消失了。说话声消失了。连呼吸声都好像变轻了。

两百多双眼睛,齐刷刷地看向他。

那些眼神很复杂。

有困惑。

有茫然。

但更多的是......一种褚云帆无法理解的东西。像是原始人看到同部落的人突然徒手生起了火。像是中世纪农民看到邻居念出了恶魔的文字。

怪物。

他们在看一个怪物。

褚云帆的后背瞬间被冷汗浸湿。

他几乎是条件反射地按下Ctrl+A,然后Delete。屏幕上的代码消失了。终端窗口关闭了。他抬起头,脸上挤出一个和周围人同样困惑的表情。

"怎么了?"他问,声音有点干涩,"你们......都看着我干嘛?"

没人说话。

李工张了张嘴,好像想说什么,但最终只是摇了摇头,转回了自己的屏幕。

老王盯着褚云帆看了几秒,眼神里的恐惧慢慢变成了怀疑。但他也没说什么,只是转身走回了自己的办公室,重重关上了门。

警报声还在响。

但已经没人管了。

褚云帆坐在工位上,心脏狂跳。他强迫自己深呼吸,一次,两次。手指在桌子下面微微颤抖。

不对劲。

太不对劲了。

他打开浏览器,点开新闻网站。

首页全是乱码。

不,不是乱码------是各种语法的碎片。中文里夹杂着英文单词,英文句子里混着编程语言的符号。像是整个网站的渲染引擎崩了。

他刷新。

还是这样。

他换了个网站。

同样的情况。

最终,他在一个极简的纯文本论坛上,看到了一条还能勉强阅读的消息:

【紧急通知:全球范围内出现未知技术故障。编程语言理解能力普遍异常。建议所有技术人员停止操作,等待进一步通知。】

下面跟了几百条回复。

"我连Hello World都写不出来了......"

"变量是什么?函数是什么?我好像做了个梦,梦里我会写代码,但醒来全忘了。"

"不是忘了!是脑子转不动!我看到for这个单词,知道它是循环,但就是想不起来该怎么用!"

"全球性的?不只是我们公司?"

"不只是我们国家。我刚问了国外的朋友,一样。"

褚云帆一条条往下翻。

手指越来越冷。

中午十二点,公司强制断网。

广播里传来行政总监的声音,听起来很疲惫:"全体同事请注意,接上级通知,即刻起停止所有技术相关工作。请大家......保持冷静。等待进一步安排。"

办公区一片死寂。

没人动。

大家就坐在工位上,盯着黑屏的显示器,或者盯着自己的手。好像只要多看一会儿,那些丢失的技能就会回来。

褚云帆站起来,走向茶水间。

路过李工工位时,他瞥了一眼屏幕。

李工在写文档。

用中文。

"如何打开终端:第一步,找到屏幕左下角的开始菜单。第二步,点击。第三步,在搜索框里输入'cmd'。第四步......"

他写得很慢。

每一个字都要想很久。

好像这不是常识,而是某种需要详细记录的秘密知识。

茶水间里,几个同事在低声说话。

"你还能记得多少?"

"我......我记得if是判断。else是否则。但具体怎么写,我脑子里一片空白。"

"我也是。就好像有人把我大脑里关于编程的那部分,整个挖掉了。"

"不是挖掉。"另一个声音说,"是蒙上了一层雾。你知道雾后面有东西,但就是看不清。"

褚云帆接了一杯水。

水温很正常。

但他喝下去的时候,感觉喉咙发干。

下午两点,公司宣布提前下班。

"基础设施不稳定,"老王在群里发消息,"交通系统可能受影响,大家早点回家。"

没人欢呼。

大家沉默地收拾东西,沉默地离开工位。动作都很慢,好像还在消化今天发生的一切。

褚云帆背起包,走进电梯。

电梯里有六个人。

没人说话。

大家盯着楼层数字,眼神空洞。

电梯下到一楼,"叮"的一声开门。

褚云帆走出去,然后停住了脚步。

大厦外的景象,比他想象的更糟。


街道上,红绿灯在胡乱闪烁。

不是故障的那种闪烁------是毫无规律。红灯亮0.5秒,绿灯亮2秒,黄灯亮0.1秒,然后又跳回红灯。三个灯有时候会同时亮起,发出刺眼的光。

十字路口堵成了一团。

自动驾驶汽车停在路中间,有的在缓慢地原地转圈,有的在前后轻微挪动,像是失去了方向的昆虫。一辆公交车的电子屏上滚动着乱码,司机试图手动操作,但方向盘好像锁死了。

人行道上,人们拿着手机,脸上都是茫然。

"地图用不了了......"

"叫车软件显示服务器错误。"

"连扫码支付都不行了!刚才买瓶水,扫了五分钟都没反应!"

褚云帆站在大厦门口,看着这一切。

阳光很好。

天空很蓝。

但世界好像突然变成了一个劣质的、漏洞百出的程序。每一个模块都在报错,每一个函数都在崩溃。

他抬起左手,看了一眼手腕上的表。

那是一块老旧的电子表,表盘不是数字,而是一行不断跳动的代码。

是他自己改装的。

表盘上显示着:

while (true) { display_time(); sleep(1000); }

一个无限循环,每秒刷新一次时间。

此刻,代码正常滚动。

时间正常显示。

14:37:05。

褚云帆盯着那行代码,看了很久。

然后他抬起头,看向街道对面。

那里有一家咖啡馆,橱窗上贴着二维码,旁边写着"扫码点单,享受优惠"。一个年轻人正拿着手机对着二维码,反复调整角度,表情越来越烦躁。

"怎么扫不出来啊......"年轻人嘟囔。

褚云帆知道为什么。

扫码程序底层依赖图像识别库,识别库依赖算法,算法依赖代码。

代码写不出来了。

所以识别库无法更新,算法无法优化,程序最终会随着设备老化而逐渐失效。

就像现在。

就像整个世界。

他深吸一口气,把袖子拉下来,盖住手表。

然后迈开脚步,走进混乱的街道。

回家的路原本只需要二十分钟。

今天他走了一个小时。

因为要避开所有依赖智能调度的路口,要绕开那些在原地打转的自动驾驶汽车,要小心突然乱闪的交通信号灯。

路上,他看到了更多细节。

一家银行的ATM机,屏幕蓝屏,显示着一串错误代码。几个人围在旁边,试图理解那些代码的意思,但显然失败了。

一个外卖机器人卡在路边绿化带里,轮子空转,扬声器里反复播放:"路径规划错误,请稍候......路径规划错误,请稍候......"

便利店门口,电子广告牌上本该播放促销视频的区域,现在显示着一行行调试信息:

Segmentation fault (core dumped)

相关推荐
哈里谢顿1 小时前
MySQL + Redis 协同 示例
redis·mysql
哈里谢顿3 小时前
redis实现排行榜功能
redis
Ahtacca5 小时前
Redis 五大常用数据类型详解及 Java 客户端(RedisTemplate)操作实战
java·数据库·redis·学习·缓存
rchmin8 小时前
Redis集群扩容数据迁移方案分析
redis·缓存
最贪吃的虎8 小时前
Redis 除了缓存,还能干什么?
java·数据库·redis·后端·缓存
哈里谢顿17 小时前
redis常见问题分析
redis
MySQL实战18 小时前
Redis 7.0 新特性之maxmemory-clients:限制客户端内存总使用量
数据库·redis
蜂蜜黄油呀土豆19 小时前
Redis 底层实现深度解析:从 ListPack 到哈希表扩容
数据结构·redis·zset·sds·listpack·哈希表扩容
斯普信云原生组20 小时前
Redis 阈值超限及影响分析
redis·spring·bootstrap
程序员JerrySUN21 小时前
OP-TEE + YOLOv8:从“加密权重”到“内存中解密并推理”的完整实战记录
android·java·开发语言·redis·yolo·架构