17611538698
webmaster@21cto.com

为什么在 AI 泛滥的时代,关注语言更为重要?

编程语言 0 14 1小时前
图片

21CTO导读:在AI大量使用的情况下,关注编程语言却显得越发的重要。

一个时代性的迷思:当 AI 快成为“写代码的人”


在 AI 辅助编程日益普及的当下,技术社区里悄然流行着一种“语言虚无主义”:

“既然人工智能只要一个 Prompt 就能用任何语言写出可运行的代码,我们为什么还要花几年时间去死磕语言的语法细节、类型系统和内存模型呢?”

最近,在与一位同行交流时,他也吐露了相同的困惑:“我现在觉得研究编程语言这些底层东西没什么用,能搞定需求不就行了吗?我是不是太极端了?”

这种焦虑完全可以理解。当大语言模型能够在几秒钟内用 Rust 写出并发处理逻辑、用 Python 搞定数据流水线、用 SQL 拼出复杂查询时,手写代码的门槛确实被无限拉低了。

但这其中隐藏着一个巨大的认知误区:人们错把“语法(Syntax)”当成了编程语言的全部,而忽视了其背后真正璀璨的“思想(Concepts)”。

代码生成工具只是帮我们省去了“打字”和“查文档”的过程。

但编程语言真正赋予我们的,不是一堆字符排列规则,而是一套思考问题、管理复杂性、建模现实世界的思维框架。只要软件工程的核心矛盾——“控制复杂度”——依然存在,这些思想就永远不会失效,甚至比以往任何时候都更加关键。

编程语言的本质:是一间装满“计算思维”的兵器库


每一种优秀的编程语言,本质上都是其设计者对“如何解决特定计算问题”所给出的深刻洞察。

当你在学习不同的语言时,你不是在记 API,而是在给自己的大脑安装不同的思考维度:

图片


关于资源与安全的边界(Rust & C)


  • Rust 的借用检查器(Borrow Checker):它不只是为了防范内存泄漏,它教给你的是关于所有权(Ownership)与并发安全的严密逻辑。一旦你理解了“同一时间要么只有一个可变引用,要么有多个不可变引用”,哪怕你回到 Python 或 Go 中,你对数据状态竞争的警惕性也会上升一个维度。

  • C 语言的指针与数组:它逼着你穿透抽象,去直面物理内存布局与间接寻址。不理解指针的人,永远无法真正搞懂对象引用的本质、缓存命中率的威力,以及为什么有时候数据拷贝比指针传递更快。


关于抽象与维度的升维(Haskell & Lisp)


  • Haskell 的类型类(Typeclasses)与 ADT(代数数据类型):它展现了极其原则性的多态与建模能力。通过 Sum Type(联合类型)和 Product Type(交叉类型),你能够在编译期就让“不可能的状态”在语法层面无法表达。这是对业务领域最精密的数学建模。

  • Lisp 的宏与语法扩展(Macros):它突破了“语言是给定产物”的局限,提出了元编程(Metaprogramming)与“面向语言编程”的理念——当语言不适合解决这个问题时,就用宏创造一门专门解决该问题的领域特定语言(DSL)。


关于状态与大规模工程的解构(OCaml, Clojure & OOP)


  • SML/OCaml 的模块系统与行多态(Row Polymorphism):它们揭示了大规模软件如何实现真正的解耦。这不是简单的分包,而是如何在不牺牲类型安全的前提下,构建可扩展、可组合的巨型系统结构。

  • Clojure 的不可变数据与持久化结构:它颠覆了传统的“原地点刷新”思维。它告诉你:状态不是可以随意篡改的值,而是随时间演进的序列。这种持久化数据结构和结构共享的思想,是现代响应式前端(如 React)和分布式计算的核心基石。

  • OOP 的同一性(Identity)与相等性(Equality):在面向对象的世界里,两个对象值相同并不意味着它们是同一个东西。区分“它们现在看起来一样”和“它们本质上是同一个实体”,是搞懂状态变化与实体建模的起点。

  • SQL 的关系代数Prolog 的一阶谓词逻辑:前者教你抛弃传统的指令式步骤,用声明式的语言描述“我要什么”而非“怎么去做”;后者则带你进入基于逻辑推理的问题求解殿堂。


为什么在 AI 时代,理解这些理念反而更重要了?


大模型时代的到来,非但没有削弱这些语言思想的价值,反而将其推向了前所未有的高度。

1. 从“写码者”到“审稿人”:你必须有能力评估 AI 的产出


AI 生成的代码往往具有极强的高惑性——它们看起来结构完整、运行顺畅,但在极端并发、内存边界或复杂领域建模上,可能藏着致命的缺陷。

  • 一个不懂借用检查的程序员,无法识别出 AI 写的并发代码里隐蔽的数据竞态;

  • 一个不懂代数数据类型的开发者,无法察觉 AI 建立的模型是否遗漏了重要的边界状态。


AI 提供了解决方案,但只有拥有深刻语言思想的人,才具备评估这个方案优劣的“审美”与能力。

2. 模式选择与架构设计:AI 无法替你决定“思维模式”


在动手写代码之前,最重要的决策是:这个问题应该用什么思维范式去解?是用响应式的不可变数据流?还是用基于接口的多态设计?抑或是构建一个声明式的 DSL?

AI 可以帮你填充具体的实现细节,但问题域到模式域的映射,必须由人类架构师完成。你脑海里的语言思想工具箱越丰富,你为系统选定的架构基石就越稳固。

结语:区分“建议接纳者”与“工程架构者”


重读这些编程语言的深刻思想,你会发现它们早已超越了具体的语法细节,成为了软件工程精神的一部分。

在 AI 可以量产代码的时代,只会堆砌语法的人,确实会被边缘化;但掌握了语言内核思想的人,反而获得了前所未有的杠杆效应。

AI 越强大,底层思想的价值就越凸显。因为这些思想正是划分两类人的终极界限: 一类是只能被动接受 AI 建议、被代码吞噬的“打字员”; 另一类则是能够驾驭复杂系统、利用 AI 杠杆去构建宏大工程的“架构师”

作者:洛逸

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信