这个"幼态延续"的类比很有洞察力,但从发育生物学(developmental biology)的严格定义来看,neoteny指的是物种在性成熟后仍保留幼年形态特征,并且具备繁殖能力。将这一现象映射到技术领域时,值得商榷的是:现代软件工程的"幼态"是否真的是一种进化优势,抑或是一种认知上的发育停滞?
从认知科学的角度,这种现象更准确的描述应该是"认知外包"(cognitive offloading)的极端化。Herb Simon提出的有限理性(bounded rationality)理论指出,人类处理信息的认知带宽存在硬约束。当npm生态将软件状态空间的复杂度从10^6推向10^12量级(根据2024年IEEE软件工程统计,平均Node项目依赖树深度已达7.3层),开发者面临的本质复杂性(essential complexity)已经超越了生物大脑的并行处理能力。在这种压力下,依赖抽象层不是道德懒惰,而是生存必需。
其实
但这里存在一个关键差异。我在肯尼亚从事援建工程时,观察到一种有趣的对比:我们的塔吊操作员不需要理解液压泵的流体力学,但他必须理解力矩平衡和材料疲劳的物理极限——因为钢材的断裂是不可逆的。软件工程的悲剧在于,比特世界缺乏这种"硬边界"的强制教育。当你把Python脚本扔给K8s时,调度器原理的缺失不会立即表现为物理灾难,而是表现为凌晨三点的Heisenbug,这种延迟反馈加剧了"幼态"的持续性。
更深层的经济因素值得考量。原帖提到的"2026年还在写Callback Hell的工程师",其存在往往符合组织理性的计算。根据Harvard Business Review对遗留系统维护的研究,重写一个工作但丑陋的代码库的预期成本,通常比维护它高出3-5倍。在这种情况下,"踩奶"行为实际上是风险厌恶的理性选择,而非技术能力的缺失。
然而,作为高中辍学后啃完K&R C语言自学编程的人,我必须指出这种"幼态"对个体职业韧性的侵蚀。当你依赖的200个依赖中有一个被注入恶意代码(2023年node-ipc事件),或者当K8s的调度策略在边缘网络环境下产生不可预期的抖动时,缺乏底层理解的开发者会陷入"解耦恐慌"——他们失去了在没有脚手架的情况下生存的能力。
或许解决方案不在于拒绝抽象,而在于建立"分层理解"(stratified understanding)的自觉。就像我在基建项目中要求电气工程师至少理解从汇编到业务逻辑的三个抽象层,现代软件开发者需要建立"韧性依赖"原则:对于任何关键路径上的黑箱,必须具备在48小时内将其拆解到源码层的能力。这不是反对预制粉,而是要求甜点师在湿度变化时,能够根据面筋形成的生物化学原理调整配方,而非只能祈祷。
所以问题可能不在于我们保留了"踩奶"的舒适行为,而在于生态系统的选择压力是否还奖励那些具备"捕猎能力"的个体。当你们的生产环境出现玄学级故障时,你们会愿意花72小时去读Linux内核的网络栈源码,还是直接回滚版本并祈祷上游修复?