找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

670

积分

0

好友

94

主题
发表于 昨天 02:56 | 查看: 1| 回复: 0

他是Go语言的第二代掌门人,在长达十余年的时间里,引领着Go从一个内部实验项目,成长为云原生时代的霸主。他也是Plan 9的资深黑客,贝尔实验室精神的传承者。

在ACM ByteCast的一场深度访谈中,Russ Cox系统性地回顾了他从贝尔实验室的青葱岁月,到创立Go语言的初心,再到对AI时代编程语言未来的深刻思考。

Go的“前传”——源自贝尔实验室的“简单”基因

Go语言对“简单”的极致追求,其种子早已在贝尔实验室和Plan 9操作系统的沃土中埋下。

Russ Cox的编程之旅始于上世纪90年代末的贝尔实验室。作为一个高中生,他有幸在那个创造了Unix的传奇之地“厮混”,与Brian Kernighan、Rob Pike、Ken Thompson、Dennis Ritchie这些先驱一同交流。

“贝尔实验室和Plan 9给我最深刻的印记,就是对构建真正简单的事物的执着。那里的人们,那是一个小团队,他们在做着雄心勃勃的事情,而完成它们的最好方式,就是从简单的事情开始,构建那些真正坚固可靠的简单事物。”

这段经历为他注入了“简单”的DNA。然而,当他进入MIT读研时,他第一次遭遇了“现代C++”的复杂性。他被当时的业界现状所震惊,这让他深信:“一定有更好的方式。”

Go的“创世纪”——“让我们做点让自己开心的事”

2008年春天,当Russ Cox结束学业准备进入工业界时,已经先行加入Google的Rob Pike、Robert Griesemer和Ken Thompson向他发出了邀请,他们正准备全职启动一个新语言项目。

这个项目的初心,极其纯粹和个人化。

“我们都曾在Google写过大量的C++程序……我们只是再也不想写那种代码了。我们受够了。我们知道有更好的方式,并且我们确信能把它带给Google的工程师们。”

“我们想解决的问题是,我们想构建一个能让我们在Google开心地编写程序的系统。”

Go语言的诞生,并非一次自上而下的战略规划,而是一场由几位顶尖工程师发起的、旨在解决自身痛苦的“自救运动”。他们见识过更好的开发环境,无法忍受现代C++的复杂性。Russ Cox甚至坦言:“说实话,我当时愿意付钱换取和他们一起工作的机会,而Google反而付钱给我。这对我来说是双赢。”

Go的“演进哲学”——稳定压倒一切

从Plan 9到Go的巨大成功,Russ Cox对开源社区的建设和语言演进有着深刻理解。他认为,Go的成功很大程度上源于其对“稳定” 的执着。

“进步可以有多种形式,一种是不稳定的进步,一种是稳定的进步。我们竭尽全力去寻找稳定的形式,而这通常意味着做得比人们要求的更少,但同时又能让他们解决自己的问题。”

他举了go test与JUnit XML格式集成的例子。社区曾强烈要求go test直接输出JUnit格式的XML。但Go团队拒绝了,因为他们不想成为一个复杂XML格式的“专家”和“维护者”。

Go团队的解决方案是

  1. 定义一个极其简单的、稳定的、机器可读的 JSON 输出格式。Go团队只承诺维护这个简单格式的稳定性。
  2. 告诉社区:“然后,你们可以自己写一个从这个JSON到你们所需XML的转换器。现在,你们可以自己解决自己的问题,而无需等待我们来解决。”

这种通过提供稳定、正交的底层构建块来赋能社区的哲学,正是Go生态健康发展的核心秘诀。

AI时代的“灵魂拷问”——我们还需要Go吗?

如今,Russ Cox的工作重心已转向“理解和提升AI模型的编码能力”。对于AI是否会取代程序员的问题,他给出了一个充满历史纵深感的回答。

AI只是进化的又一级台阶

他认为,AI与编程语言的关系,是计算机发展史上“抽象层次不断提升”的延续。

  • 40年代:我们通过手动连接电线来编程。后来,我们发明了解释器,用“数据”代替了“电线”。
  • 50年代:我们有了FORTRAN,用 ax² + bx + c 这样的公式代替了手写机器指令。
  • 今天:AI正在将一些我们曾认为“只有人能做”的工作自动化。

“我认为AI将融入同样的模式……我们会将一些关注点交接出去,然后我们会找到更新、更大的事情来专注。每当我们的能力增长,或者我们将一些工作卸载给机器时,我们的雄心也会随之增长。”

编程语言不会消亡,清晰性永恒

Russ Cox坚信,无论AI如何发展,人类可读、行为确定的编程语言都不会消亡。

“英语不会成为编程语言,因为它的歧义性太高了……最终,我们描述的依然是一门编程语言。”
“拥有一门人类可以阅读、理解的编程语言,这一点仍然至关重要。这样,当计算机行为不端时,你可以看着代码说:‘哦,我明白了为什么在这些指令下,它没有做正确的事。’”

AI可能会帮助我们编写代码,但代码本身作为人与机器之间最可靠的契约,其地位无可替代。

Go在AI时代的定位

Go诞生的初衷是为了解决“多核网络系统”的挑战。Russ Cox认为,AI可能在未来提出另一个同等级别的挑战,催生一门全新的语言。

“也许会有一门专为训练模型而生的新语言。Python目前表现出色,但很容易相信你可以用一门定制语言做得更好。但整个世界并不会都在训练模型。”

他认为,世界上有大约300万Go开发者,但需要编写模型训练代码的人远少于此。这意味着,Go作为一门为构建大规模、高并发网络服务而生的语言,其核心价值在AI时代愈发重要——因为所有的AI模型,最终都需要通过稳定、高效的云原生服务来提供价值。

给后辈的忠告——如何构建持久的事业?

在访谈中,Russ Cox分享了两条宝贵的建议:

  1. 花时间去真正理解问题:“很多时候,人们很容易满足于第一个能工作的方案。而我做过的大部分有价值的事,都来自于回头审视一个问题,然后感觉:‘实际上,我还没有完全理解它,我应该再试一次。’”
  2. 找到让你兴奋的环境:“如果你对一件事感到兴奋,你早上醒来就想继续做它,那么你最终能完成的工作,将远超那些只为完成8小时任务的人。”

领导力的传承——“最重要的期末考试,是退到一旁”

Russ Cox分享了他对开源项目领导力传承的深刻见解。他认为,开源社区的领导力本质上是一种“社会性事业”,而一个领导者最终极的考验,在于他能否选择“退到一旁”。

“最终,对领导者来说最重要的期末考试,就是退到一旁,然后说:‘好吧,我甚至不需要再在这里了。现在你可以领导这个了。’ 而这很难。”

他回顾了Go领导权的两次交接,强调这种传承的意义在于:“确保项目能超越某个特定的人而存在,并且也能获得它们所需要的新视角和新想法。” 这确保了Go能够在新船长的引领下继续航行。

结语

从贝尔实验室的“简单”初心,到Go语言的“稳定”哲学,再到对AI时代的冷静远见,这场访谈描绘了一位顶尖工程师和技术领袖的心路历程。

构建持久技术的秘诀,不在于追逐一时的潮流,而在于深刻地理解问题,坚守核心的原则,并始终保持对创造的热情。这或许也是Go语言能穿越喧嚣,成为今天这个样子的根本原因。




上一篇:AI代码审计四天定位NASA航天器CryptoLib认证漏洞,提升太空网络安全
下一篇:识别水货DBA:从Oracle、MySQL到PG的面试鉴坑指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-12 08:14 , Processed in 0.093284 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表