摘自文章: Language Agnostic Programming: Why you may still need code

【原文摘要】
The author notes they don’t typically write speculative posts, but AI’s rapid transformation of software development has led them to explore its potential trajectory, framing this as a set of exploratory thoughts rather than predictions or a manifesto.
Having worked with diverse programming languages and paradigms throughout their career, the author now uses LLMs and tools like GitHub Copilot, Cursor, and Claude Code to boost productivity. However, they are skeptical of claims that "English will be the only programming language you’ll ever need," questioning if programming languages will become obsolete if AI can translate natural language to working code.
While acknowledging AI’s impressive ability to turn clear natural language intent into functional code, the author argues that debugging will remain an essential programming task requiring programming languages. Even as AI improves at generating and debugging code, humans will still need to read, trace, and reason about code when it fails to work as expected.
They highlight that natural language is prone to ambiguity—using a classic joke about a software engineer misinterpreting a request for milk and eggs as an example—whereas programming languages are designed to eliminate ambiguity with precise syntax (setting aside edge cases like undefined behavior in C). This precision is critical, as ambiguous instructions in programming can lead to catastrophic failures, not just humorous misunderstandings.
Assuming LLMs write most code but programming languages still matter for debugging and comprehension, the author revisits the perennial dilemma of which programming language to learn. The appeal of "English as the only programming language" stems partly from avoiding the complexity of learning language-specific skills like JavaScript for the web or C for systems programming, as language choice significantly impacts development workflows and productivity, especially when working with unfamiliar languages.
【译文摘要】
作者表示自己通常不会撰写推测性文章,但人工智能对软件开发领域的快速变革促使他探究其发展轨迹,他将本文定位为一系列探索性思考,而非预测或宣言。
作者职业生涯中接触过多种编程语言和编程范式,如今正借助大语言模型(LLMs)以及GitHub Copilot、Cursor、Claude Code等工具提升工作效率。不过,他对“英语将是你唯一需要的编程语言”这类说法持怀疑态度,同时提出疑问:如果人工智能能将自然语言转化为可运行代码,编程语言是否会被淘汰。
尽管作者认可人工智能能将清晰的自然语言需求转化为可用代码的出色能力,但他认为调试仍将是一项离不开编程语言的核心编程任务。即便人工智能在代码生成和调试方面不断进步,当代码未按预期运行时,人类仍需阅读、追踪并分析代码逻辑。
作者强调自然语言存在歧义性——他以一个经典笑话为例:一名软件工程师误解了买牛奶和鸡蛋的要求——而编程语言则通过精准的语法消除歧义(暂不考虑C语言中未定义行为这类极端情况)。这种精准性至关重要,因为编程中的模糊指令可能引发灾难性故障,而非仅仅是搞笑的误解。
假设大语言模型负责编写大部分代码,但编程语言在调试和代码理解方面仍不可或缺,作者重新探讨了“该学哪种编程语言”这个长期存在的难题。“英语作为唯一编程语言”的吸引力部分源于人们可以避开学习特定语言技能的复杂性,比如针对网页开发的JavaScript或针对系统编程的C语言,因为编程语言的选择会极大影响开发流程和工作效率,尤其是在使用不熟悉的语言时。
【单词表】
- speculative /ˈspekjələtɪv/ 推测性的,猜测性的
- transformation /ˌtrænsfəˈmeɪʃn/ 变革,转变
- trajectory /trəˈdʒektəri/ 轨迹,发展方向
- manifesto /ˌmænɪˈfestəʊ/ 宣言,声明
- paradigm /ˈpærədaɪm/ 范式,模式
- skeptical /ˈskeptɪkl/ 怀疑的,持怀疑态度的
- obsolete /ˌɒbsəliːt/ 已废弃的,过时的
- debugging /ˌdiːˈbʌɡɪŋ/ 调试(程序)
- trace /treɪs/ 追踪,溯源
- prone /prəʊn/ 易于……的,有……倾向的
- ambiguity /ˌæmbɪˈɡjuːəti/ 歧义,模糊性
- syntax /ˈsɪntæks/ 语法,句法
- catastrophic /ˌkætəˈstrɒfɪk/ 灾难性的,毁灭性的
- perennial /pəˈreniəl/ 长期存在的,反复出现的
- dilemma /dɪˈlemə/ 困境,两难境地
- appeal /əˈpiːl/ 吸引力,感染力
- workflow /ˈwɜːkfləʊ/ 工作流程,业务流程
【句子翻译】
- The author notes they don’t typically write speculative posts, but AI’s rapid transformation of software development has led them to explore its potential trajectory, framing this as a set of exploratory thoughts rather than predictions or a manifesto. 作者表示自己通常不会撰写推测性文章,但人工智能对软件开发领域的快速变革促使他探究其发展轨迹,他将本文定位为一系列探索性思考,而非预测或宣言。
- Having worked with diverse programming languages and paradigms throughout their career, the author now uses LLMs and tools like GitHub Copilot, Cursor, and Claude Code to boost productivity. 作者职业生涯中接触过多种编程语言和编程范式,如今正借助大语言模型(LLMs)以及GitHub Copilot、Cursor、Claude Code等工具提升工作效率。
- However, they are skeptical of claims that "English will be the only programming language you’ll ever need," questioning if programming languages will become obsolete if AI can translate natural language to working code. 不过,他对“英语将是你唯一需要的编程语言”这类说法持怀疑态度,同时提出疑问:如果人工智能能将自然语言转化为可运行代码,编程语言是否会被淘汰。
- While acknowledging AI’s impressive ability to turn clear natural language intent into functional code, the author argues that debugging will remain an essential programming task requiring programming languages. 尽管作者认可人工智能能将清晰的自然语言需求转化为可用代码的出色能力,但他认为调试仍将是一项离不开编程语言的核心编程任务。
- Even as AI improves at generating and debugging code, humans will still need to read, trace, and reason about code when it fails to work as expected. 即便人工智能在代码生成和调试方面不断进步,当代码未按预期运行时,人类仍需阅读、追踪并分析代码逻辑。
- They highlight that natural language is prone to ambiguity—using a classic joke about a software engineer misinterpreting a request for milk and eggs as an example—whereas programming languages are designed to eliminate ambiguity with precise syntax (setting aside edge cases like undefined behavior in C). 作者强调自然语言存在歧义性——他以一个经典笑话为例:一名软件工程师误解了买牛奶和鸡蛋的要求——而编程语言则通过精准的语法消除歧义(暂不考虑C语言中未定义行为这类极端情况)。
- This precision is critical, as ambiguous instructions in programming can lead to catastrophic failures, not just humorous misunderstandings. 这种精准性至关重要,因为编程中的模糊指令可能引发灾难性故障,而非仅仅是搞笑的误解。
- Assuming LLMs write most code but programming languages still matter for debugging and comprehension, the author revisits the perennial dilemma of which programming language to learn. 假设大语言模型负责编写大部分代码,但编程语言在调试和代码理解方面仍不可或缺,作者重新探讨了“该学哪种编程语言”这个长期存在的难题。
- The appeal of "English as the only programming language" stems partly from avoiding the complexity of learning language-specific skills like JavaScript for the web or C for systems programming, as language choice significantly impacts development workflows and productivity, especially when working with unfamiliar languages. “英语作为唯一编程语言”的吸引力部分源于人们可以避开学习特定语言技能的复杂性,比如针对网页开发的JavaScript或针对系统编程的C语言,因为编程语言的选择会极大影响开发流程和工作效率,尤其是在使用不熟悉的语言时。
文章来源:Language Agnostic Programming: Why you may still need code
