上午十点,陈默端着杯子往茶水间走。
走廊尽头的咖啡机嗡嗡地响,声音不大,但在安静
这种沉默不是冷场,是一种只有家人之间才有的默契。知道有些话不需要说透,知道对方会懂。
的办公区里格外清楚。九月的阳光从走廊的落地窗照进来,把地砖切成一块亮一块暗。他踩着明暗交替的光斑往前走,鞋底在抛光地砖上发出轻微的摩擦声。走廊两侧的工位大多空着,这个点大部分人还在开会或者在去开会的路上。他的杯子是那种公司发的马克杯,白色,杯壁上印着公司的标志,标志的边角已经磨掉了一小块,露出底下灰色的瓷。
拐过拐角,远远就听到小李的声音。不是在打电话,是在跟谁激动地说话,声音比平时高了半个调。这个声音在空荡荡的走廊里显得格外响亮,像往平静的水面扔了块石头。
小李站在饮水机旁边,一手举着手机,一手比划着什么。他穿着公司发的灰色文化衫,胸口的标志已经洗得有点褪色了,领口松松垮垮地挂着。看到陈默过来,他立刻把手机屏幕转过来,像在展示什么不得了的东西。
「陈哥你看这个!」
陈默凑过去。手机屏幕上是一条推文,黑色背景,白色字体,左上角是一个章鱼猫的图标。推文标题写着一行英文,翻译过来是「你的AI结对编程搭档」。下方是一张代码编辑器的截图,光标后面跟着一段自动生成的代码,字符在深色背景上一行行排开,缩进整齐得像排版过的技术文档。
「GitHub要出一个新工具了,能用人工智能写东西!」小李的声音里带着压不住的兴奋,「你看这个那段演示,真的能写。」
陈默把手机接过来。推文正文很短,就是一段官宣加一张截图。他的拇指往上划了一下,推文下面是一段嵌入的视频。他点了播放。
画面里是一个功能编辑器的界面,有人打了一行注释,大意是「解析文件并返回字典列表」。然后光标停在那里,不到一秒钟,程序开始一行一行地冒出来。函数名清晰,参数有类型标注,返回值标注了泛型,甚至还加了异常处理。整个过程不到五秒,一个完整的函数就写完了。
他把视频暂停,又倒回去看了一遍。这次注意到人工智能在生成第三行的时候停顿了大概零点三秒,然后补上了一个文件找不到的异常捕获。这个细节让他心里动了一下。它不是在拼模板,它在判断这个函数可能出什么问题,然后提前做好防护。这个判断本身比东西生成更让他在意。
「你信这个?」他把手机还给小李。
「你看演示视频了,真的能写啊。」小李接过手机,又划了两下评论区,「评论区都在说,这东西出来以后刚入行的程序员要失业了。」
「评论区说什么你都信?」
「这是官方的推文,不是小道消息。」小李把手机举到他面前,指了指推文底部的发布时间,「昨天发的,今天技术圈全在转。我去论坛上看看,肯定已经炸了。」
「论坛上什么消息都会炸。」陈默说。
「那不一样。这是全世界最大的代码托管平台出的工具,分量不一样。你想想,大厂在AI上投了几百亿,现在变成能写功能的东西了。「陈哥,」他往前凑了半步,声音压低了但又更兴奋了,「这不是概念,不是论文,是要上线的产品。我看了好几个技术大V的评测,都说这东西真的顶。」」
「先看看吧。」陈默说,走到饮水机旁边接了杯水。
小李不甘心地跟过来:「陈哥,你看了那个演示没有?三秒钟写一个函数,换你你能写这么快吗?」
「不能。」
「那你还说不信?」
「我不是不信。」陈默按了一下出水按钮,水声哗哗地响。
小李追问道:「你是不确定它能不能写,还是不确定它会不会取代你?」
陈默的动作顿了一下。他把杯子放在台面上,转身看着小李:「你问这个干什么?」
小李耸耸肩:「我就随便问问。想知道前辈怎么想的。」
「没想那么多。」
「你骗人。」小李笑着说。「我是不确定。」水是温的,他本来想接热水,但手指碰到出水按钮的时候犹豫了一下,最后按了温水那一档。杯壁上凝了一层薄薄的水雾,他用拇指抹了一下。水从杯口的缝隙里渗出来一点,顺着杯壁流到他的手指上,凉的。
他入行八年,见过太多号称要颠覆行业的新东西。每次出来都吹得天花乱坠,最后能活下来的没几个。他记得有一年组里一个小伙子把整个项目迁到新技术栈,说性能好、部署快。半年后又迁回来了,因为生态太薄,项目延期了两个月。
「你看那个视频,」小李还在说,手机屏幕还亮着,「它写出来的东西结构比我们组好几个人写的都清楚。那个异常处理,上次小王写的那个文件操作连错误捕获都没加。」
「演示都是挑最好的案例录的。你见过哪个产品把失败的那段演示放出来?」
「那也是它写的啊。」
陈默把杯子放在桌上,杯底在桌面磕了一声,声音不大,但在安静的工位区里很清楚。他看着小李。这个年轻人眼睛里有一种他很久没见过的光,不是对技术的好奇,是对可能不用那么辛苦工作的期待。他二十岁出头的时候也有过这种光,在第一次写出能跑的程序时,在第一次看到自己的程序被部署到线上环境时。后来这种光慢慢暗下去了,被故障、加班、需求变更、凌晨三点的告警电话磨成了灰。他现在看代码的感觉不是兴奋,是确认,确认这行功能不会出问题,确认那个接口不会超时,确认这次上线不会被电话叫起来。
「先看看吧。」他说。
小李不太满意这个回答。他张了张嘴,想再说点什么,但开会的提醒弹出来了。下午两点,组会。小李看了眼手机上的时间,把推文截图发到了工作群里。陈默看到群里多了几条消息,都是小李发的,截图、链接、还有一句「大家看看这个」。他没点开。
他回到工位,打开编程工具,屏幕上还开着昨天没改完的功能。光标在第四十三行闪烁,他盯着那个闪烁的光标看了三秒,又切回浏览器,打开了那个代码平台的页面。推文还在首页。他又看了一遍那个演示视频,这次没暂停,就让它播完。播完之后页面自动跳到了评论区,热评第一条是一句英文大写字母,大意是初级开发者完蛋了,点赞两千多。
他关掉页面,开始改代码。但他发现自己写了三行之后又停下来了。他在想那个人工智能生成的函数。五秒钟。从注释到完整的函数,五秒钟。他写同样的东西大概需要十五分钟,包括思考参数设计、写类型标注、加异常处理、测试一下能不能跑。五对十五,三倍的差距。而且这只是现在这个版本的能力。明年呢?后年呢?
他把这个念头按灭了。打开终端,编译,运行,看日志。日期格式的bug还在那里,前端传的是一种格式,后端硬编码的是另一种格式,查询结果永远为空。他找到那一行程序,改了格式,重新构建,启动,测试。列表页的筛选功能正常了。他松了口气,但只松了一秒。因为他脑子里又冒出了那个问题:如果人工智能真的能写功能,还会写出这样的格式bug吗?
下午两点差五分,他端着杯子走进会议室。空调开得太低,冷风直往脖子里灌。他从椅子后面捞了一件外套搭在膝盖上,外套是前年买的,灰色的拉链衫,袖口已经磨出了毛边。
老张坐在他对面,手里转着一支笔,转得很有节奏,笔帽在拇指和食指之间来回弹。老张今年三十八了,比陈默大五岁,头发已经白了不少,但他不去染,说费那钱干嘛。他的工位在陈默斜对面,两个人中间隔着一个空位,那个位子上个月刚走了一个实习生。
小李坐在角落,还在看手机
前几天刷到一篇文章,标题是35岁
三十五岁,在这个行业里是一个被反复提起的数字。猎头的电话变少了,朋友圈里的招聘信息变多了。没有人明说,但每个人心里都有一本账。
互联网人的出路在哪里。他没点开,但标题已经记住了。
,屏幕亮度调得很低,但他脸上的表情说明他还在刷相关讨论。他的嘴角微微翘着,时不时用手指划一下屏幕,像在看什么让他兴奋的东西。
会议开始前的五分钟,小李又提了一次。他站起来,声音不大,但足够让整间会议室的人听见。「你们看那个人工智能写代码的工具了吗?」
产品经理刘姐从需求文档里抬头。她四十出头,短发,说话干脆。「什么东西?」「一个能用人工智能自动生成东西的工具,大厂出的。」小李把手机递过去,「刘姐你看这个视频。」刘姐接过去看了十几秒,手指在屏幕上划了一下。她的表情从好奇变成了一种职业性的审视。「这能写业务逻辑吗?我们那个订单系统那么复杂的关联查询。」「能的。你看它写的这个函数,参数校验、错误处理、类型标注都有。」
「那我们以后是不是不用招初级了?」后排有人说了半句,声音不大,但被空调的嗡嗡声衬得很清楚。
老张一直没说话。他坐在那里,笔在手指间转来转去,眼睛看着窗外
窗玻璃上结了一层薄薄的雾气,路灯的光透过雾气变成模糊的橙色光晕。
。窗外是一栋在建的写字楼,塔吊的影子在玻璃幕墙上慢慢移动。等小李说完了,他开口了。「人工智能能写代码?」他笑了一声,不是那种开心的笑,是一种听到了什么不太聪明的话的笑。「那还要我们干什么?」
小李愣了一下:「张哥,你看看演示。」「我看过了。」老张把笔放在桌上,笔在桌面上弹了一下。「能写样板程序,能写算法题。你让它写一个分布式事务的补偿方案试试?你让它处理一个线上紧急故障试试?它知道什么是业务上下文吗?它知道我们的系统有三种支付渠道、两个数据库、一套对账逻辑吗?」
会议室安静了几秒。空调的嗡嗡声突然变得很明显。
「以后会更强的。」小李说。声音比刚才低了一些。「以后再说。」老张站起来去倒水,话题就断了。他走到会议室角落的饮水机旁边,按了一下出水按钮,水声哗哗地响。他背对着大家,肩膀微微耸着,像在扛什么看不见的东西。
陈默全程没说话。他看着小李被噎住的表情,嘴角还挂着刚才想反驳的弧度,但眼睛里的光已经暗了一点。又看了看老张的背影。老张说的没错,人工智能现在确实写不了复杂逻辑。但小李说的也没错,它在进步。去年这时候还没有这东西,今年已经出了预热推文。明年呢?后年呢?
问题是,它进步的速度有多快?
会议照常开了一个半小时,讲的是第三季度的迭代计划。陈默在本子上记了几行字,但脑子里一直在想推文上那段东西。那个异常捕获。它不是在拼模板,它在判断这个函数可能出什么错。这个判断本身,比代码生成更让他在意。
散会后他回到工位,打开编程工具,屏幕上还开着那个老项目的代码。满屏的变量名都是单个字母,函数动辄上千行,注释一行都没有。他盯着那些功能看了五秒,忽然想到一个问题。如果人工智能能写功能,还会写出这样的变量名吗?
晚上七点半,陈默到家。
玄关的灯亮着,暖黄色的光从头顶洒下来,把鞋柜照得发亮。鞋柜上放着妻子的蜡笔盒,有两支滚到了地上,一支红色一支蓝色。他弯腰捡起来放回去,蜡笔上沾了灰,他用拇指擦了一下,红色的蜡在他指腹上留了一道痕迹。换了拖鞋走进客厅,拖鞋是那种软底的棉拖,踩在木地板上没什么声音。
「嗯。」他应了一声,把公文包放在沙发上。公文包的拉链没拉好,里面的笔记本露了一角。他把笔记本塞进去,拉上拉链。
妻子从厨房探出头:「洗手吃饭,马上好。」她的头发用一根筷子别在脑后,额头上有一层细汗,围裙上沾了几滴油点。
他去卫生间洗了手。水龙头的水流很急,打在手背上有点凉。他搓了两下就关了,抽了张纸巾擦手。镜子里的自己看起来有点疲惫,眼袋比上个月明显了,眼角的细纹在日光灯下特别清楚。他盯着镜子里的自己看了两秒,移开了目光。
饭桌上三菜一汤,都是他爱吃的。红烧排骨炖得软烂,清炒西兰花脆嫩刚好,还有一盘凉拌黄瓜淋了麻油和醋。汤是番茄蛋花汤,蛋花散得很均匀,是她一贯的手法。她做饭做了五年了,从结婚后就没上班,说是等孩子上小学再说。他知道她不是不想上班,是放心不下家里。
「今天工作怎么样?」妻子问。
「还行。」他说。筷子夹了一根西兰花,嚼了两下,西兰花炒得很脆,还保留着一点生的味道,是他喜欢的火候。
「忙不忙?」
「还好。」
妻子没再问。她知道「还行」和「还好」是什么意思。不是不想说,是说了她也听不懂。这种默契不知道从什么时候开始形成的。一开始是她说「我不懂你们的技术」,语气是遗憾的。后来是他说「说了你也不懂」,语气是疲惫的。再后来连问都不问了,变成了「还行」和「还好」的固定对话模式。他有时候想,如果他们之间的话题只剩下了工作和孩子,那还剩多少是属于他们两个人的。
妻子满意地跑回去继续画。她又拿了一张纸,开始画新的东西,蜡笔在纸上发出沙沙的声音。
妻子在收拾碗筷,他坐在沙发上,拿起手机
朋友圈里满屏的中秋祝福,他却一条都不想发。成年人的社交网络就是这样,热闹是给别人看的。
刷了一下。朋友圈里有人在晒娃,有人在加班,有人在转发技术文章。他划了两下,看到小李转了一条关于那个人工智能编程工具的深度分析文章,标题是一串英文。他犹豫了一下,没点进去。他不确定自己是不想看,还是不敢看。
「你在想什么?」妻子洗完碗走过来,在他旁边坐下。她的手上有洗洁精的味道,淡淡的柠檬香。
「没什么。」
「吃饭的时候就心不在焉的。」
「想点技术的事。」他说。
「什么事?」
「说了你也不懂。」
这句话脱口而出,快得他自己都没反应过来。说完之后客厅安静了两秒。电视里在放新闻,播音员在说某个地方的经济数据,声音不大不小,刚好填满这段沉默。茶几上妻子的蜡笔盒倒了,几支蜡笔滚到了沙发底下,他没去捡。
妻子没接话。她的手放在沙发扶手上,手指轻轻敲了两下,然后停下来。她站起来去给妻子洗澡了。走的时候没看他,脚步很轻,棉拖在木地板上几乎没声音。
陈默坐在沙发上,盯着电视屏幕。新闻里在放一组柱状图,他一个数字都没看进去。他在想刚才那句话。说了你也不懂。这五个字他说不清说过多少次了。第一次说的时候是什么时候?大概是刚结婚那年,她在厨房问他今天加班做了什么,他说了一个技术名词,她问什么意思,他说了句「你不懂」。那时候是开玩笑的语气,带着点撒娇的意思。后来不知道从什么时候开始,这句话变成了句号,不是逗号。不是「你不懂,我给你讲」,是「你不懂」,句号,然后转身去做自己的事。
林薇看了他一眼,没再追问。她站起身开始收拾碗筷,碗碟碰撞的声音在安静的客厅里格外清脆。陈默坐在椅子上没动,看着她的背影。她弯腰的时候,有一缕头发从耳后滑下来,她用手背撩了一下,动作很轻。
「林薇。」他叫了一声。
她转过身:「嗯?」
「没什么。」他说。
她看了他两秒,然后端着碗走进厨房。水龙头的声音哗地响起来。
他想开口说点什么。妻子在卫生间里喊「妈妈我要那个粉色的毛巾」,妻子应了一声。他嘴巴动了动,又闭上了。
他拿起手机,打开聊天软件,翻到和妻子的聊天记录。最后一条消息是她发的,下午四点,一张妻子在幼儿园画的画。他回了一个竖大拇指的表情。往上翻,最近一个月的聊天记录里,表情包占了百分之七十,文字消息大多是「回来了」「吃什么」「好」「嗯」。他盯着屏幕看了几秒,锁了屏。手机屏幕暗下去,映出他自己的脸,模糊的,像隔了一层雾。
卫生间里传来妻子的笑声,还有水花溅起来的声音。妻子在说「别闹了别闹了」,声音里带着笑。陈默听着这些声音,忽然觉得自己离它们很远。声音就在隔壁,但他像是隔着一层玻璃在听。不是距离的问题,是一种他说不清楚的东西把他和这些声音隔开了。
他想起谈恋爱的时候。那时候他们在同一家公司,他在开发部,她在市场部。中午一起吃饭,他会给她讲今天写的程序有多酷,她听不太懂但听得认真,还会追问「然后呢」「那后来怎么样了」。下班后一起走路去地铁站,二十分钟的路能走四十分钟,因为总是走走停停地说话。他讲技术,她讲客户,两个人的世界完全不同,但他们对彼此的世界都好奇。那种好奇是什么时候消失的?
大概是妻子出生之后。妻子出生那年他正好在赶一个大版本,上线前三天妻子发动了,他在医院陪了一夜,第二天早上六点赶回公司继续改代码。上线那天妻子已经出生两天了,他在医院的走廊里用手机看了发布报告,一切正常。他松了口气,然后走进病房,妻子看着他,眼睛是红的,说你回来了。他说回来了。那时候他觉得工作和家庭可以兼顾,只要自己够努力。后来他发现不是够不够努力的问题,是精力就那么多,分给工作的多了,分给家里的就少了。
再后来就是无穷无尽的加班。项目上线、故障修复、版本迭代、技术评审,每天从早上九点到晚上十点,周末偶尔还要加班。结婚纪念日他加班到十点次叫他在加班,妻子第一次走路他在出差。妻子从来没抱怨过,她只是把妻子的成长拍成照片发给他,他回一个表情,然后继续写东西。他说不清从什么时候开始,妻子发照片的频率变低了,从每天一张变成每周一张,后来变成只有特殊日子才发。也许不是频率变低了,是她已经习惯了他的缺席。
客厅里电视还在播新闻,他一个字都没听进去。他把手机拿起来又放下,拿起来又放下。他在想一个问题:他对妻子说的「你不懂」和他对那个人工智能工具的「先看看吧」,是不是同一种东西?都是防御。一个防御妻子的好奇心,一个防御新技术的可能性。他不想被妻子看到自己疲惫的一面,也不想被新技术看到自己可能被替代的一面。两种防御,同一个根源:害怕。
他害怕什么?害怕承认自己老了,害怕承认自己花了八年学会的东西可能不再稀缺,害怕承认自己在家里和在职场一样,都不是不可替代的。他把这种害怕包装成「不信」和「你不懂」,听起来像是自信,其实是心虚。
卫生间里的水声停了。妻子在给妻子吹头发,吹风机的嗡嗡声从走廊那头传过来。他站起来走到走廊口,看到妻子蹲在地上,一手拿着吹风机,一手拢着妻子的头发。妻子闭着眼睛,表情很享受。吹风机的暖风吹在妻子的头发上,发丝飘起来又落下去。妻子抬头看了他一眼,没说话,又低头继续吹。
他把画放回桌边,站起来去厨房倒了杯水。厨房的灯比客厅亮,白色的荧光灯管把一切都照得很清楚,连灶台上的油渍都看得一清二楚。他喝了一口水,凉的,从喉咙一直凉到胃里。他把杯子放在水槽边上,看到水槽里还泡着晚饭的碗碟,洗洁精的泡沫已经消了,水面上浮着一层油花。他没有动手洗。他不常进厨房,每次进来都觉得厨房变小了,其实是东西变多了,妻子的辅食锅、妻子的炖汤锅、各种调料瓶,把台面占得满满当当。他站在厨房里,听到卧室那边妻子在给妻子讲故事,声音很低,断断续续的,听不清在讲什么。他关了厨房的灯,走回客厅,坐回沙发上。电视还开着,他拿遥控器关了。客厅一下子安静下来,安静得能听到墙上挂钟的滴答声。
十一点半,妻子已经睡了。
妻子也回了卧室,临走前看了他一眼。那个眼神他读懂了,是「你还不睡」的意思。他点了下头,她就走了。卧室的门轻轻合上,锁舌咔哒一声扣进锁孔。
书房里只剩下屏幕的光和空调的嗡嗡声。空调是那种老式的挂机,制冷的时候会发出一种低频的震颤,像一只看不见的钟在走。窗外偶尔有车经过,车灯的光扫过窗帘,在天花板上留下一道转瞬即逝的亮痕,然后消失。窗帘是妻子买的,浅蓝色的,上面印着小碎花,他从来没觉得这个花色好看,但也从来没说过。
他靠在椅背上,揉了揉眼睛。屏幕上的功能已经改完了,那个日期格式的bug修好了,提交记录已经推到了远程仓库。构建状态是绿色的对勾,一切正常。他应该去睡觉了。但他没有动。他的手放在键盘上,手指没有敲击,只是搭着,像在等什么。
手机在桌上震了一下。他拿起来看,是技术群里有人在讨论那个人工智能编程工具。点进去,消息已经刷了九十九加条。他往上翻,看到有人贴了自己试用的截图,有人说这东西只是花架子,有人在争论它到底算不算真正的AI,有人在担心初级程序员的未来。各种观点混在一起,像一锅煮沸的水,冒着泡,翻着滚,但没有一个结论。
他翻了几条就没翻了。但手指已经打开了浏览器。他在搜索框里打了几个字,搜索结果第一条就是官方的那段演示。他点了进去。
视频和白天小李给他看的那段不一样,这段更长,二十分钟,是一个完整的编程过程演示视频。视频者用那个人工智能工具写了一个网络应用的后端接口,从零开始,一个文件一个文件地写。路由、数据库连接、认证中间件、错误处理,每一步都是先打注释,然后AI生成代码,然后演示者微调几行。整个过程很流畅,像在看一个人写文章,停顿的时候是在思考,流畅的时候是在输出。
他性格固执,但骨子里很温柔。平时沉默寡言,急躁时也会拍桌子,沉稳下来又能笑着自嘲。
夫妻之间有一种默契,朋友之间有一种信任。这些年他学会了在不同关系中切换角色。
他决定不再逃避,选择面对一切。坚持还是妥协,成了他每天都在思考的问题。他不想再放弃了。
由此可见,这说明了所有事件背后的逻辑。简单来说,选择决定了方向。
总而言之,每个选择都有代价。说到底,没有白走的路。归结起来,一切都是最好的安排。
他预感到了什么,桌上的文件散发着不祥的气息,仿佛在暗示着什么。一切都暗示着即将到来的变化。
但谁也没想到,结局在意料之外。剧情突然转折,他以为看到了终点,却发现只是另一个起点。
他站起身走到窗前,抬手指尖轻触玻璃。转身回来时脚步重了许多。
声音里带着温度。话语的重量压下来,冰冷的质感从耳朵落到指尖。
窗外的树暗示着生命的韧性。风雨过后依然挚立,仿佛在告诉他坚持下去。
空气中漂浮着咖啡和雨水的味道。天色暗下来,氛围变得沉重。
从远景看,城市在天际线处模糊。拉近到中景,办公室的灯光闪烁。近处是他紧锁的眉头。
内卷让人喘不过气。努力奋斗是为了不被淘汰,累到极致又觉得一切都没意义。躺平还是继续卷?每个人都在挣扎。
千禧年后的互联网泡沫,金融危机,移动互联网的黄金十年。如今ChatGPT来了,新一轮变革开始了。
天花板的风扇缓缓转动,他感到一种莫名的焦躁。窗外的蝉鸣一浪高过一浪,恍惚间像是回到了小时候的夏天。空调的嗡嗡声混着键盘的噹啪声,这声音他听了十年,竟然有种安全感。