Don't be the out of touch Kung Fu master
260 points
• 1 day ago
• Article
Link
John Carmack 把武术史与软件工程的演变并置来反思专业技能的变迁。他引用 Musashi 的 Book of Five Rings,指出武术从作为战场生存手段的 -jitsu,逐步演变为程式化的运动和文化爱好,即 -do;他认为编程界正在经历类似的轨迹。
从手工操作的底层技术向更高层次的自动化过渡,是无法避免的。正如曾经亲手把 opcodes 拼成 hex 的资深程序员,看着那些原始而专业的方法被淘汰一样,现代编程任务也正被 Artificial Intelligence 深刻改造。完全手写代码的做法正在从一种必要的实用技艺,慢慢转为更多出于过程本身而保留的练习,类似于传统武术的传承方式。
他并不把这种变化视为单纯的损失。 Retro Computing 社区为爱好者提供了一个极好的空间,让人们可以出于对工艺的热爱去保存并庆祝那些旧有技能。但他也发出警告:不要成为固守传统却已经过时的大师,忽视更高效的现代替代方案。真正的危险在于过分依赖遗留做法,从而丧失与更现代、更高效方法竞争的能力。
归根结底,他的态度是务实而非感伤的。 John Carmack 认为,如果像 Musashi 这样的角色能获得明显的战术优势,他很可能会接受像 Assault Rifle 这样的现代武器;因此他劝诫开发者把注意力放在结果上。深厚的技术传统固然有价值,但职业身份的核心应以用现有工具实际能做成什么为准,而不是对工具本身的执着。
John Carmack reflects on the evolution of professional skills by drawing a parallel between the history of martial arts and the shifting landscape of software engineering. Referencing Musashi's Book of Five Rings, he notes how martial arts transitioned from essential battlefield survival tactics, known as -jitsu, into stylized sports and cultural hobbies, often referred to as -do. He observes that this same trajectory is currently unfolding within the world of programming.
The transition from hands-on, low-level technical work to higher-level automation is a process Carmack views as inevitable. Just as veteran programmers who once manually assembled opcodes into hex have seen their specialized, primitive methods become obsolete, modern coding tasks are increasingly being transformed by artificial intelligence. He suggests that the practice of writing code entirely by hand is gradually moving away from being a necessary, pragmatic craft and toward becoming a discipline practiced more for the sake of the process itself, much like a traditional martial art.
Carmack does not frame this shift as a loss, noting that the retro computing community provides a wonderful space for enthusiasts to celebrate and maintain older skills for the sheer love of the craft. However, he offers a warning against becoming an obsolete master, stuck in traditional methods while ignoring more effective modern alternatives. He points out that the true danger lies in remaining so attached to legacy practices that one loses the ability to compete against modern, more efficient approaches.
Ultimately, his perspective is pragmatic rather than sentimental. Suggesting that a figure like Musashi would likely have embraced modern technology like an assault rifle if it provided a clear tactical advantage, Carmack encourages developers to stay focused on results. He highlights that while there is value in deep technical tradition, the core of one's professional identity should remain centered on what is actually accomplished with the available tools, rather than an adherence to the tools themselves.
410 comments • Comments Link
有人对"AI 是工程师的革命性工具"这一说法持怀疑态度,认为这种论调助长了错失恐惧症(FOMO),并掩盖了该领域缺乏经过公开验证的实质性成果的事实。支持者则发现,AI 辅助开发把注意力从语法和样板代码转移到了架构与高层逻辑上,通过减轻逐行手工编码的负担,重新激发了人们对编程的兴趣。批评者警告,过度依赖自动化而牺牲基础理解不可持续,会产生一批缺乏识别 Bug 与长期维护复杂系统所需知识的"表面型程序员",并导致大量低质量或敷衍的代码。要在大规模上成功应用 AI,就必须施加严格的自动化约束,例如确定性测试覆盖和严格的架构执行,以降低生成劣质代码的风险。
用武术隐喻来说,传统程序员被比作"Kung Fu masters",而 AI 驱动的开发者则被比作"MMA fighters",这反映出追求工匠精神的人与优先考虑经济效用与速度的人之间的分裂。部分开发者把 AI 看作解放现有专业技能的助力;另一些人则认为 AI 剥夺了构建软件这门技艺所带来的智力乐趣与职业满足感。经济压力推动了 AI 辅助开发的普及,因为组织更看重吞吐量和快速迭代,在强调高性价比和快速交付的市场环境中,"手工匠人式"的编程空间越来越小。有人担心跳过"艰难学习过程"的长期后果:一代开发者可能会过度依赖他们并不完全理解的模型,最终削弱整个行业的集体能力。
这场争论反映出对软件行业未来的深层焦虑:编程的商品化是否会把熟练的专业人员变成自动化系统的管理者,从而降低个人的主动性和创造力的价值。尽管 AI 受到高度关注,但软件工程的核心原则——可维护性、可扩展性和性能——无论用什么工具生成底层代码,依然不变。总体而言,围绕 AI 的讨论在认为它是生产力进化性跃升的人与认为它在侵蚀掌握能力与认知严谨性的人之间形成了深刻的意识形态裂痕,一方面强调从繁琐语法中解放并专注架构问题的优势,另一方面警告缺乏基础技能的人无法验证或架构系统输出会造成大量糟糕代码。经济对快速产出的需求与人类对工匠精神与有意义工作的渴望之间的张力仍在持续,而 AI 会提升这一行业,还是仅仅加速软件质量与个人技能方面的"逐底竞争",目前尚无定论。 • Skepticism exists regarding the claim that AI is a revolutionary tool for engineers, with some arguing that it promotes fear of missing out and obscures the lack of substantive, publicly verified achievements in the field.
• Proponents find that AI-assisted development shifts the focus from syntax and boilerplate to architecture and high-level logic, reigniting interest in programming by reducing the burden of manual, line-by-line transcription.
• Critics of AI-driven workflows warn that relying on automation at the expense of understanding the basics is unsustainable, as it creates "vibe coders" who lack the foundational knowledge required to identify bugs or maintain complex systems long-term.
• Successful large-scale implementation of AI requires rigorous, automated constraints, such as deterministic test coverage and strict architectural enforcement, to mitigate the inherent risk of generating low-quality or "slop" code.
• The martial arts metaphor, comparing traditional programmers to "Kung Fu masters" and AI-driven developers to "MMA fighters," polarizes the discussion between those who value artisanal craftsmanship and those who prioritize economic utility and competitive speed.
• A significant divide remains between developers who see AI as a liberating enhancement to their existing expertise and those who feel it drains the intellectual joy and professional satisfaction from the craft of building software.
• Economic pressures drive the adoption of AI-assisted development, as organizations prioritize throughput and rapid feature iteration, often leaving little room for the "artisanal" approach to programming in a market that favors cost-effective, rapid delivery.
• Concerns are raised about the long-term impact of skipping the "hard way" of learning, as a generation of developers may become overly dependent on models they do not fully comprehend, ultimately weakening the collective capability of the engineering profession.
• The debate reflects deeper anxieties about the future of the software industry, where the commoditization of coding threatens to turn skilled professionals into mere managers of automated systems, potentially devaluing individual human agency and creativity.
• Despite the intense focus on AI, some argue that the core principles of software engineering—maintainability, extensibility, and performance—remain constant, regardless of the tools used to produce the underlying code.
The discussion reflects a deep ideological rift between those who view AI as an evolutionary, necessary leap in productivity and those who see it as a degenerative force that erodes the mastery and cognitive rigor central to software engineering. While one camp emphasizes the liberation from tedious syntax and the ability to focus on architectural problem-solving, the other warns of the "slop" generated by those who lack the foundational skills to verify or architect the output of these systems. Ultimately, the conversation underscores an ongoing tension between the economic demand for rapid output and the human desire for craftsmanship and meaningful work, with little consensus on whether AI will elevate the profession or merely accelerate a race to the bottom in terms of software quality and individual skill.