乐于分享
好东西不私藏

软件手工业时代结束软件工业时代已来

软件手工业时代结束软件工业时代已来

古之匠人,治木为器,必先量材而凿,相势而斫。一件家具,从画墨到刨光,每个榫卯都浸透着汗水的咸涩,每道纹理都诉说着匠心的孤诣。那是个体与物质之间充满体温的对话,尽管迟缓,却自有其尊严。而今日之软件工业,岂非正经历了从这般手工业到现代工业的残酷嬗变?

回溯廿载,软件开发犹然一派手工业景象。那时的程序员,衣敝履穿,坐于斗室,面对漆黑屏幕上跳动的光标,犹如中世纪的抄经僧侣,一字一句地镌刻着他们的圣经。他们给变量取名,斟酌再三,仿佛给新生儿命名;设计一个算法,殚精竭虑,如同推敲一首小诗。代码是私密的,是带有指纹的。每个程序员都像一位制鞋匠,能记住自己敲下的每一行代码的脾气秉性——这行急躁,那行温吞,另一行则有几分狡黠。软件项目也多是三五知己,或单枪匹马,像极了前工业时代的作坊,徒弟跟着师傅,口耳相传,心领神会。

然而,这手工业时代的田园牧歌,不过是现代工业洪流到来前的一声叹息。

社会对软件的需求,如饿汉对面包的渴望,从实用工具扩展到生活的每个角落。于是,软件项目像吹气的气球,膨胀到单枪匹马无法驾驭的规模。五十万行、百万行、千万行代码,再也不是几个“匠人”在车库里能敲打出来的。手工业者的“慢工出细活”变成了“慢工出死路”。客户的需求朝三暮四,市场的窗口转瞬即逝,谁有耐心等你慢慢打磨一个榫卯?

这时,工业化的铁蹄呼啸而来。

软件工程,这个原本带着几分学院派酸腐气的词汇,突然变成了血腥的战场。设计模式像流水线上的模具,框架与库如同标准零件,版本控制工具取代了口头约定。程序员们不再是从头造轮子的工匠,而是装配线上熟练的技工,从货架上取下现成的组件,拼拼凑凑,用胶水——不,用API粘合起来。开发流程被切割成需求、设计、编码、测试、维护,如同屠宰场里的流水线,每个人只负责自己那块肉的分割

复用”成为圣经,“不重复造轮子”成为口号。可复用软件像工业时代的螺丝钉,规格统一,不分彼此。开源运动更像是这场工业革命的加速器,将原本藏在匠人工具箱里的秘技,公之于众,批量复制。GitHub成了全球最大的代码仓库,也成了最大的代码复印机。拷贝、粘贴、修改、提交——这个循环替代了曾经的构思、斟酌、敲打、调试。

工业化带来的效率是惊人的。过去的匠人可能需要数月才能搭建的网站,如今一个新手用现成的框架,几天就能捣鼓出来,虽然他对底层原理一知半解。正如现代人能驾驶汽车却不懂内燃机,使用电脑却不通电流,软件开发者也日益成为“黑箱”的操作者。他们调用函数,却不必深究函数内部的实现;他们使用框架,却不必理解框架底层的机制。这是进步,是效率,却也是一种知识与技能的异化。

软件工业时代还带来了测试与质量保证的机械化。过去,匠人用自己的眼睛检查代码,用自己的心智模拟运行。如今,自动化测试像质检仪器,冷冰冰地扫描每一个函数,每一行逻辑。单元测试、集成测试、回归测试,一道道关卡,如同工业产品必须通过的ISO认证。代码覆盖率成为衡量质量的尺度,就像布匹的密度、钢铁的硬度。这固然减少了错误,却也使软件失去了手工业时代那种特有的、带有人情味的“缺陷美”。

更深刻的变化发生在程序员自身。手工业时代的程序员,往往以艺术家自居,谈论代码的风格、优雅,甚至“代码的味道”。他们之间流传着关于某位大师用巧妙算法解决难题的传奇,如同武林高手谈论绝世武功。而工业时代的程序员,更像训练有素的产业工人。他们要学习的是流程、规范、标准。编程风格指南取代了个人习惯,代码审查替代了师徒传承。“软技能”——沟通、协作、敏捷响应——比纯粹的技术能力更受重视。个人英雄主义让位于团队协作,孤胆枪手让位于集团军作战。

当然,这场转型并非全无代价。软件工业时代带来了千篇一律的产品,缺乏手工业时代那种独特的灵魂。走进当代的数字世界,你会发现App们都长着相似的面孔,采用相近的交互模式,甚至犯着相同的错误。创新日益变成排列组合,而不是真正的突破。与此同时,程序员们的职业满足感也在下降。许多人从创造者变成了装配工,从诗人变成了抄写员。他们不再为自己的作品感到骄傲,因为在庞大的工业机器中,个体的贡献显得微不足道。

一种新的异化出现了:程序员既被自己的创造物所异化,也被生产过程所异化。他们写的代码属于公司,他们遵循的流程由他人制定,他们使用的工具由他人创造。在一个崇尚“全栈”却实际只能“单点”的时代,真正的理解被表面的熟悉所取代。

然而,历史的车轮从不因人的怀念而后退。软件手工业时代的终结,如同农业社会让位于工业社会,是不可避免的。软件工业时代带来了规模化、标准化、高效化的软件生产能力,使数字化渗透到人类生活的方方面面。没有这场转型,我们就没有今天的智能手机应用,没有云服务,没有大数据处理,没有人工智能的繁荣。

或许,我们不必过于感伤。手工业时代的余韵,并没有完全消失。在某些角落,仍然有人坚守着对代码艺术的追求,在工业化的夹缝中寻找创造的空间。开源社区中,依然有追求完美的极客;大型企业中,依然有将代码视为艺术的工程师。他们知道,即使是工业时代,也无法完全消弭人的创造力与热情。

软件工业时代已经到来,不是我们愿不愿意,而是我们必须接受的现实。只是,在这个冰冷的工业时代,我们仍然可以保持内心的那一点手工业时代的余温。毕竟,最优秀的工业产品,往往是那些既符合标准,又带着一丝匠人温度的作品。

工业化的大潮浩浩荡荡,但我们仍然可以在标准的螺丝钉上,刻上自己的名字。

话虽如此,然余尝闻:工业革命之轮,未尝止于蒸汽与流水线之结合。盖手工业时代之终结,非一日之功,而有其内在逻辑之自我否定。吾侪上文所述,仅及程序工业之标准化生产,尚有一节未曾道破——恰如手工匠人终为机器所替,而今日机器,亦将为更精密之智能引擎所驱

且看当代硅谷,已暗涌另一股更为惊心动魄之潮流:Claude Code之辈,非仅辅助之具,已直取软件工程师之席。据传,Anthropic内部高层工程师,竟有数月未尝手书一行——非不能也,乃不屑也其工程团队虽扩容四倍,而人效反增二百之巨。尤为可骇者,GitHub上百分之四之公开提交已出Claude Code之手,预计至年底此数将逾百分之二十。一日之间,AI提交逾十三万四千余次,较前暴增四百二十九倍。昔日手工敲击键盘如僧侣抄经,今朝自然语言口述意图,屏幕上代码便如瀑布般奔涌而出。

更有甚者,“一人公司”已非神话。OpenAI内部实验,三人小团队,五个月,从空仓库起步,造出百万行产品——从头到尾无一行为人类所书。连指导AI如何工作的说明书《AGENTS.md》,第一版也是AI自己写的。此非“效率革命”,而是对“软件工程”定义的彻底颠覆。国内蔻町智能亦披露:以往需百人开发之项目,今二三人即可完成;以往数十万开发之电商后台,今成本可压至六至八美元。

此种转型,已然重塑工程师之角色。人类正从“代码执行者”蜕变为“Agent管理者”。核心技能不再是逻辑实现与语法精确,而是任务拆解、上下文传递、边界定义——此诚所谓“管Agent”取代“写代码”。Claude Code之父Boris Cherny断言,“编程已被解决”,其个人每日仅凭iOS手机端调度数百智能体并行工作,单日发出PR最高一百五十个。AI智能体间可通过Slack直接通信协作,整个团队内部已实现百分之百由模型生成代码。

此境不禁令人想起那旧时印刷术之喻。十五世纪欧洲,识字者不足百分之一,书籍乃少数抄经士之专利。印刷术降世,不过五十年,所出书册已逾前千年总和,书价陡降百倍。抄写员非但不惊,反因其最厌抄书之劳,乐得专心绘插画、做装帧,从事其真正热爱之创造。今日程序之变,何尝不类此?昔日逐行堆砌代码之码农,恰似那夜以继日抄写经文之僧侣;而今驾驭AI做架构、写规范、管编排之新物种,正仿佛那从抄写桎梏中解放出来、专注于真正创造力的文艺复兴匠人。

是以余以为,今日软件之变,非仅手工业之终结,亦工业自身之“去工业化”。当标准化生产之工具亦可自主思考、自我修护、相互协作,人类社会或迎一个“工业后”之新纪元——届时,编程序如用印刷术,写代码如印书籍,人人皆可“出版”其数字创意,一如印刷术普及后,识字之潮席卷欧陆。此非末日之兆,实为另一种解放之始。印刷术没有消灭知识,而是让它从狭小的抄经室走向了广场和街角;编程的普及,或许也会让创造的门槛降至从未有过的高度。

然有一事不可不察,印刷术之兴盛,虽使抄写员不再是识字的唯一通道,却也意味着要精于插图与装帧——也就是今天所说的“Agent编排能力”——方能跻身那百里挑一的顶尖行列。盲目扩大Agent数量反会引发“Agent膨胀”,沟通成本攀升、错误率累积、微小偏差被逐级放大。这或许是新常态下,那些不愿只做“装配工”的人,真正可以把握的转机。

正是:旧榫未朽,新轮已驰。既见AI驱百体如驭群马,那昔日匠人的最后骄傲——亲手敲下最后一个字符的仪式感——便也在这自动化的洪流中,化为书斋里一缕淡淡的檀香,供人凭吊罢了。