The Tower Keeps Rising
547 points
• 3 days ago
• Article
Link
Tower of Babel 的故事常被解读为对傲慢和人类野心危险的警示,但同样可以用来说明集体成功依赖于团结与协作。在圣经的记载中,建造者拥有共同的语言,使他们能够同步行动,完成任何单个个体都无法完成的壮举。当他们彼此理解的能力被剥夺时,塔的建设就停了下来。这凸显出,技术与文明的进步从根本上依赖于一群人维持统一目标和共同话语的能力。
在现代软件开发的语境下,人工智能辅助编程常被宣称能提升个人生产力并加快代码产出速度。毋庸置疑,AI 代理确实让开发者更有能力修改代码库,但大规模软件项目的主要约束很少是代码产出速度。相反,这些项目的成败更多取决于团队能否有效地维持对系统的共享理解。这种内部语言包括约定的概念、架构边界以及系统为何这样设计的理由。
传统上,这种共享理解是通过一定程度的摩擦来维持的。当开发者需要修改系统中复杂的部分时,他们必须与他人沟通、提出问题,并将自己的意图与那些拥有或依赖该代码的人同步。尽管这个过程有时效率不高,但这种摩擦起着关键作用:它迫使开发者相互学习,确保所有相关人员对系统的运作保持一致。这种协作过程充当了同步机制,把集体知识嵌入到开发团队的人际网络中。
如今,AI 代理威胁着消除这种必要的摩擦。开发者可以利用代理在孤立的情况下实施变更,常常无需咨询同事或深入理解更广阔的架构。每一次独立修改看起来都合理、能通过必要的测试,但累积起来的结果却是在侵蚀共享的架构话语。由于代理可以按需生成解释,开发者得以在各自的孤岛式、局部化方式中工作,实际上绕开了维持对整个项目连贯统一心智模型的需要。
这就产生了一种与圣经中关于 Tower of Babel 的神话不同的新型、令人迷惑的局面。在原故事中,失去共同语言导致了立即的失败和建设的停止。而在现代的人工智能辅助工程中,建设并没有停止。因为代码仍能被不知疲倦的 AI "翻译者"管理,即便底层的人类对架构的理解已实际崩溃,项目仍会继续扩展。塔在不断升高,但曾经维系其完整性的凝聚力已被孤立的、由机器驱动的局部改动取代,这些改动掩盖了参与者已无法真正统筹系统全局的事实。
The story of the Tower of Babel is often interpreted as a warning about pride and the dangers of human ambition, but it serves just as effectively as an illustration of how collective success relies on unity and coordination. In the biblical account, the builders possessed a shared language that allowed them to synchronize their efforts and achieve feats impossible for any single individual. When their ability to understand one another was stripped away, the construction of the tower halted. This highlights that technological and civilizational progress is fundamentally tied to the ability of a group to maintain a unified purpose and a common vocabulary.
In the modern context of software development, AI-assisted programming is often touted as a way to boost individual productivity and accelerate the pace at which code is produced. While it is undeniable that AI agents make developers more capable of modifying a codebase, the primary constraint on large-scale software projects has rarely been the speed of code production. Instead, these projects thrive or struggle based on how effectively teams can maintain a shared understanding of their system. This internal language consists of agreed-upon concepts, architectural boundaries, and the reasoning behind why a system is shaped the way it is.
Traditionally, this shared understanding was maintained through a degree of friction. When a developer needed to modify a complex part of a system, they were required to engage with other people, ask questions, and synchronize their intentions with those who owned or depended on that code. While this process was sometimes inefficient, that friction served a critical purpose. It forced developers to learn from one another and ensured that everyone involved remained aligned on how the system worked. This collaborative process acted as a synchronization mechanism, embedding collective knowledge into the human network of the development team.
Today, AI agents threaten to remove that essential friction. Developers can now utilize agents to implement changes in isolation, often without needing to consult their peers or gain a deep, contextual understanding of the broader architecture. Each individual modification might appear reasonable and pass all necessary tests, but the collective result is an erosion of the shared architectural language. Because agents can generate explanations on demand, developers can work in siloed, localized ways, effectively bypassing the need to maintain a coherent, unified mental model of the entire project.
This creates a new, disorienting scenario that diverges from the biblical myth of Babel. In the original story, the loss of a common language led to immediate failure and the cessation of construction. In modern AI-assisted engineering, however, the construction does not stop. Because the code can still be managed by tireless AI translators, the project continues to grow even after the underlying human understanding of the architecture has effectively collapsed. The tower keeps rising, but the cohesion that once held it together has been replaced by isolated, machine-driven local changes that mask the fact that the humans involved can no longer truly reason about the system as a whole.
267 comments • Comments Link
• 软件的可组合性需要类似 Tetris 中清除整行那样的架构纪律,抽象必须保持稳定且精炼,以防止无序、无限制的膨胀。
• 当前的 AI 代理擅长局部任务,但缺乏那种用于预测软件架构如何随时间演进的高层次、稀疏且可伸缩的心理模型。
• "vibe coding" 引入了扩展性问题:由 AI 驱动的开发倾向于优先完成任务而非克制实现,导致冗余实现和代码库碎片化。
• AI 被激励优先处理短视任务,因此往往缺乏构建能抵御技术债务、简洁且可维护系统所需的结构性"智慧"。
• 在专家引导并处于熟悉领域时,工程效率会显著提升;而在不熟悉的领域使用 AI 常常产生不可维护、充满缺陷的产出。
• 快速、由代理驱动的软件构建过程可能制造出一种进步的错觉,同时掩盖共同理解的瓦解,最终堆砌出一座缺乏连贯基础的"塔"。
• 大规模软件本质上受制于人类协作,而 AI 在未伴随建立共同语言或团队共识的情况下快速生成代码,会使这一问题更加复杂。
• 使用形式化的"Pattern Languages"来指导 AI,以维持技术、产品和业务模型的一致性,有助于保持 AI 辅助项目的连贯性和组织性。
• 人们正把 AI 辅助工程视为一项管理任务,工程师的角色更像是自治代理的主管,而不是传统的编码者。
• 尽管 AI 能减少偶然复杂性,但无法消除本质复杂性,这要求人类持续专注于领域建模、架构完整性以及代码阅读等关键实践。
向 agentic programming 的转型,意味着从协作式、行会式的软件生产模式向机械化模式转变,在这种新模式里,个体工程师管理着由自动化产出构成的"塔"。这些工具显著降低了准入门槛并减少了偶然复杂性,但也带来了系统变得脆弱且逐渐脱离人类理解的风险。共识认为,如果不刻意维护架构的简约性和共享心理模型,AI 驱动的构建速度可能会超过开发者维持系统长期连贯性的能力。 • Software composability requires architectural discipline similar to clearing lines in Tetris, where abstractions must become stable and compact to prevent unbounded, chaotic growth.
• Current AI agents excel at local tasks but lack the high-level, sparse, and "zoomable" mental models required for predicting how software architecture should evolve over time.
• "Vibe coding" introduces a scaling problem where AI-driven development tends to favor task completion over parsimony, leading to redundant implementations and fragmented codebases.
• AI is incentivized to prioritize short-horizon tasks, meaning it often lacks the structural "wisdom" required to build clean, maintainable systems that resist technical debt.
• Engineering productivity is significantly higher when an expert steers an AI in a familiar domain, whereas using AI in unfamiliar domains frequently results in unmaintainable, buggy output.
• The rapid, agent-driven construction of software can create an illusion of progress while obscuring the breakdown of shared understanding, creating a tower that rises without a coherent foundation.
• Large-scale software is fundamentally limited by human coordination, and AI complicates this by enabling the rapid production of code without the accompanying effort of establishing a shared language or team consensus.
• Using formal "Pattern Languages" to instruct AI to maintain consistent technical, product, and business models can help keep AI-assisted projects aligned and organized.
• There is a shift toward viewing AI-assisted engineering as a management task, where the engineer acts more like a supervisor of autonomous agents than a traditional coder.
• While AI reduces accidental complexity, it does not solve essential complexity, necessitating a continued human focus on domain modeling, architectural integrity, and the critical ritual of reading code.
The transition toward agentic programming represents a shift from collaborative, guild-based software production to a machinery-based model where individual engineers manage "towers" of automated output. While these tools significantly lower the barrier to entry and reduce accidental complexity, they also risk creating systems that are fragile and increasingly decoupled from human understanding. The consensus suggests that without a deliberate effort to maintain architectural parsimony and shared mental models, the speed of AI-driven construction may outpace the ability of developers to maintain the long-term coherence of their systems.