首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >自然语言编程无法替代Python的原因

自然语言编程无法替代Python的原因

原创
作者头像
用户11764306
发布2025-10-29 20:21:35
发布2025-10-29 20:21:35
830
举报

当AI打破语言障碍

互联网上充斥着"编程已死"、"AI是新软件工程师"、"软件开发将在2030年前过时"等言论。这些预测背后有一个迷人的论点:我们正在经历编程演化的又一次迭代。

低级语言(如汇编)让位于高级语言(如C和Python)。自此,Python程序员可以舒适地忽略汇编层面。类似地,这个论点认为自然语言现在可以取代经典编程语言,成为构建软件的工具。

关键差异

编程语言之所以会保留下来,是因为它们(与自然语言不同)是形式化的,因此用它们编写的程序构成了一系列完全指定的指令。

当执行命令x = 1+2时,x在执行后总是会获得值3。这对任何软件中的任何命令都适用——关于命令的预期行为没有歧义。正是这个属性让我们能够完全信任软件,知道今天有效的代码明天也会有效,在一台机器上的代码在另一台机器上会表现相同。

另一方面,自然语言中的指令本质上是未充分指定的,即使在指令相关的关注层面上也是如此。例如,如果一个女人让她的丈夫"去超市买些牛奶",丈夫通常会假设动词"买"意味着"购买"而不是"偷窃"。

编程作为翻译过程

"构建软件最难的是决定要说什么,而不是怎么说"

——Fredrick Brooks博士,《没有银弹》

我们可以将程序员视为翻译者:一类特殊的翻译者,他们从一种类型的语言(人类的、自然的、未充分指定的)翻译成另一种(形式化的、完全指定的)。

从自然语言移动到完全指定的语言迫使程序员/翻译者对他们手头任务的理解达到更高的清晰度。详细说明(=完全指定)各种情况应如何处理的过程,不仅仅是写出已知内容;它是一个发现和揭示的过程,揭示出源语言未充分指定性质所允许掩盖的所有隐藏假设和后果。

自主性、责任与氛围编程

原型、副项目和探索性代码都是氛围编程蓬勃发展的场景,因为用户不关心正在构建产品的许多方面。他们希望某些核心逻辑能够基本工作,而不必考虑许多细节。

使用氛围编程可以如此轻松地生成想法原型,这可以成为巨大的生产力放大器。其原因直接来自我们上面的分析:看到自然语言陈述的完全指定实例可以帮助开发人员、产品经理和客户澄清他们真正想要的是什么——这是探索和发现流程的一部分。

结论

在本文中,我们试图阐述经典编程不会很快消失,也不会被"人类"取代的观点。我们认为,如果我们要保留今天软件产品的许多属性,形式化语言必须是我们用来与计算机交流的语言。

当一个人学习编程时,他们确实学习了一门新语言,但他们在工作中培养的、可以从一门编程语言转移到下一门编程语言的技能,与语言技能相当不同。这些包括(但不限于):

  • 如何将大问题分解为更小、模块化且可解决的子问题
  • 如何定义可以执行、跟踪和调试的软件流程
  • 如何封装系统的不同部分,使其输入和输出完全指定,并可以作为与其他组件的接口/契约

这些是程序员为工作带来的更深层次技能。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 当AI打破语言障碍
  • 关键差异
  • 编程作为翻译过程
  • 自主性、责任与氛围编程
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档