标签 编程 下的文章

Rust 布道者Jon Gjengset深度访谈:在 AI 时代,我们该如何思考编程、职业与未来?

本文永久链接 – https://tonybai.com/2025/10/30/jon-gjengset-rust-ai-future

大家好,我是Tony Bai。

他是 MIT 的博士,Rust 社区的知名布道者,《Rust for Rustaceans》作者,前亚马逊首席工程师,现欧洲顶尖 AI 防务公司 Helsing 的首席工程师。Jon Gjengset 的履历,本身就是一部现代软件工程师的精英成长史。

在一场深度访谈中,Gjengset 以其一贯的冷静与深刻,系统性地阐述了他对 Rust 语言的哲学、AI 带来的冲击、工程师的职业发展,乃至在美欧之间做出的人生选择。这既是一场关于技术的对话,更是一次关于如何在日益复杂的软件世界中,保持清醒思考和持续成长的思想盛宴。

Rust 的“预先头疼”哲学

连续九年被评为 Stack Overflow“最受喜爱”的语言,但实际使用率却仍在缓慢爬坡——Rust 的这种“叫好不叫座”现象背后,隐藏着其核心的设计哲学。Gjengset 将其精辟地概括为:“Rust 让你预先头疼 (gives you the headache up front)。”

“你终究需要修复这些 bug。问题只在于,你愿意在编译时修复它们,还是在六个月后,当你的生产系统崩溃时再修复?”

这正是 Rust 与 Go、Java 等 GC 语言在开发者体验上的根本分歧。Rust 通过其著名的借用检查器 (Borrow Checker),在编译期强制开发者思考清楚数据的生命周期和所有权,以换取运行时的极致安全和性能。

这个陡峭的学习曲线,也正是 Rust 最大的“护城河”。Gjengset 认为,学习 Rust 的过程,本质上就是在你的大脑中,强制安装并训练一个强大的静态分析器。这个“脑内借用检查器”一旦形成,其价值将溢出到你使用的所有语言中。

AI 时代的“悲观”乐观主义

当被问及 AI 是否会取代程序员时,Gjengset 展现了一种独特的“悲观的乐观主义”。

  • 悲观之处:“AI 被过度炒作了,因为它无法真正理解”

他认为,当前由 LLM 驱动的 AI,其核心能力是模式复制与推断,而非真正的理解与推理 (understanding and reasoning)

“它们在预测行星的位置上表现出色,但它们无法推导出驱动其运动的底层物理原理。”

他将这一观点延伸到编程领域:AI 擅长编写那些有大量现有范例可供学习的代码,但对于那些需要深刻理解类型系统、并发模型或创造全新抽象的创新性任务,AI 依然力不从心。

  • 乐观之处:“它只是更好的电锯”

Gjengset 引用了一位开发者在 BlueSky 上的比喻,来阐述他对 AI 工具角色的看法:

“因为 Agentic AI 的出现而辞去软件工程师的工作,就像因为电锯的发明而辞去木匠的工作一样,毫无道理。”

AI 并非替代品,而是一个强大的工具,一个“加速器”。它将开发者从重复、繁琐的“模板式”工作中解放出来,让我们有更多时间去从事更高层次的、更具创造性的工作。

工程师的职业选择 —— 从 AWS 到欧洲独角兽

Gjengset 的职业路径,本身就是一部关于工程师如何在巨头与创业公司之间做出选择的生动教材。

  • 在亚马逊:自下而上的变革

在 AWS,他的职责是构建和维护 Rust 的内部构建系统。他强调,Rust 在亚马逊的普及,并非一次自上而下的行政命令,而是一场由一线团队驱动的、自下而上的变革。团队选择 Rust 的核心驱动力,是为了解决 Java/Kotlin 在 GC 停顿下难以优化的尾部延迟 (tail latency) 问题。

  • 离开美国,回归欧洲:一次关于“社会”的选择

2023 年,Gjengset 做出了一个令许多人意外的决定:离开美国,搬回欧洲。他坦言,这并非一个纯粹的职业选择,而是一个更深层次的、关于“社会” (society) 的选择。他的选择,为所有面临跨国职业机会的工程师提供了一个深刻的参考:职业选择,最终是个人价值观的体现。

对 Go 的犀利‘判词’——一场关于权衡的对话

Gjengset 的故事与 Go 有着不解之缘——他最初的博士论文项目原型,正是用 Go 编写的。这段经历,让他对 Go 与 Rust 的哲学差异,有了最为直观和深刻的体悟。

核心批评:“Go 忽略了自 70 年代以来的编程语言研究”

当被问及“Rust 在哪些方面比 Go 更好”时,Gjengset 的回答直截了当,甚至有些“刺耳”:

“哦,Rust 比 Go 更好,因为它有类型系统。这太简单了。Go 在被创造时,选择性地忽略了自 1970 年代以来几乎所有的编程语言研究成果。而 Rust 则决定从这些创新中学习。最终,你得到了一门更复杂,但写起来也有趣得多、表达力强得多的语言。对我来说,这就是最大的区别,也是我不想再用 Go 的原因。”

这句犀利的批评,直指 Go 语言设计的核心权衡:Go 为了追求极致的“简单”,在语言的“表达力”上做出了巨大的妥协。

Gjengset 认为,Rust 强大的类型系统(如 enum、模式匹配、Trait 系统)不仅仅是为了内存安全,更是为了让开发者能够在编译期,就对程序的行为建立起更强大的保证 (Guarantees)。他举例说,在 Rust 中可以利用类型系统创建 CoordinateInFrameA 这样的类型,从而在编译期就杜绝坐标系混用的错误,而这在 Go 中难以轻易实现。

Go 的“nil 指针” vs. Rust 的“编译期保证”

在向一个 Go 团队“推销”Rust 时,Gjengset 会说什么?

“你的应用在运行时因为一个错误而崩溃,这感觉很糟糕吧?在 Rust 中,这种事发生的概率要小得多。”

他认为,Go 开发者引以为傲的“我没有空指针异常”,其实只是将问题转化为了“nil 指针异常”。虽然 Go 通过 if err != nil 强制处理错误,但大量的业务逻辑错误,依然只能在运行时暴露。而 Rust 通过其类型系统和所有权模型,能将更多类别的错误扼杀在编译阶段。

“脑内借用检查器”对 Gopher 的价值

Gjengset 提出的一个极具启发性的观点是,学习 Rust 的思维模式,可以反哺我们的 Go 编程实践。一个内化了“借用检查”思想的 Gopher,会对以下问题更加敏感:

  • 理解 Go 的逃逸分析:当你的“脑内借用检查器”告诉你“从函数返回一个局部变量的引用是不合法的”时,在 Go 的世界里,这意味着“哦,这个变量会逃逸到堆上,我应该思考一下这带来的性能影响”。
  • 编写更健壮的并发代码:虽然 Go 的 channel 提供了强大的并发同步机制,但对于通过指针共享数据等场景,一个关于数据所有权和生命周期的清晰心智模型,能帮助你从根本上避免数据竞争。

小结:给开发者的忠告 —— 跨越语言的智慧

在访谈的最后,Gjengset 还分享了他对 C++ 等语言的看法,这些看法充满了辨证的智慧。

  • 对 C++ 团队:“你已经通过 RAII 获得了部分内存安全,但你的并发安全呢?Rust 可以在编译期静态地排除数据竞争。”
  • 对所有开发者:不要害怕借用检查器。它虽然让你“预先头疼”,但它正在你的大脑中构建一个关于数据流的强大心智模型,这个模型将使你在使用任何语言时,都成为一个更优秀的程序员。

Jon Gjengset 的这场访谈,远不止是一次对 Rust 的“布道”。它是一次关于工程权衡、技术信仰、职业战略和个人价值观的深度剖析。对于 Gopher 而言,这场来自 Rust 阵营的“他山之石”,深刻地揭示了 Go 在诞生之初所做出的核心权衡:用语言表达力的“舍”,换取工程效率和心智负担的“得”。

理解这场对话,将使我们对自己手中的工具,有更清醒的认知和更深刻的敬畏。

资料链接:https://www.youtube.com/watch?v=nOSxuaDgl3s


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


想系统学习Go,构建扎实的知识体系?

我的新书《Go语言第一课》是你的首选。源自2.4万人好评的极客时间专栏,内容全面升级,同步至Go 1.24。首发期有专属五折优惠,不到40元即可入手,扫码即可拥有这本300页的Go语言入门宝典,即刻开启你的Go语言高效学习之旅!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

智能时代临近:我眼中AI编程的现在与未来

本文永久链接 – https://tonybai.com/2024/10/14/programming-in-ai-era

自2022年末ChatGPT发布以来,人工智能(AI)正在深刻地改变软件开发的格局。从简单的代码补全到复杂的逻辑生成,AI正逐渐成为程序员不可或缺的助手。最近,OpenAI首席执行官山姆·奥特曼在其个人博客中发表的文章《智能时代》(The Intelligence Age)更让我们深切体会到,超级智能似乎离我们越来越近了。

正如100年前的打孔卡编程方式与现今编程方式的天壤之别,如今的我们也难以完全预见超级AI时代的编程模式。尽管现阶段的大语言模型(如ChatGPTClaude等)在AI辅助编程方面已经展现出强大的能力,并显著提升了开发效率,但它们仍面临诸多挑战。不过,与打孔卡时代的程序员相比,我们这一代程序员是幸运的,因为我们已经嗅到了超级AI的气息。

当前AI辅助编程的现状

目前,AI辅助编程主要有三种模式:

  1. IDE模式:通过使用工具(如Cursor等)智能分析代码上下文,仅需简单的TAB键操作即可生成代码片段甚至是完整代码,显著提高编程效率。

  2. Prompt模式:开发者提供描述性的prompt,AI据此生成代码块,然后开发者将其整合到项目中。这种模式要求开发者对prompt撰写有较高的理解与能力。

  3. Agent模式:在这种模式下,AI作为自主的编程助手,理解开发者的意图并主动规划(强化学习增强的思维链等)和执行任务。开发者可以与AI对话,提出问题或请求功能,而AI则基于上下文自动生成代码、测试用例,甚至进行调试。Agent模式更接近于超级AI的初级模拟,试图通过自然语言交互与上下文理解,模拟人类思维,自主规划并处理复杂编程任务。

虽然IDE和Agent模式本质上都是Prompt模式的变种,但Agent模式更像是对超级AI的初级尝试,使开发者能够更专注于高层设计,将重复性任务交给AI处理。

不过,这三种模式都属于初级辅助模式,虽然已经能显著提升开发效率。这些模式的辅助效能还与多种因素相关,比如:

  • 人类提示工程(Prompt engineering )水平:开发者如何有效地与AI沟通需求,直接影响输出质量。
  • AI对不同编程语言的掌握和擅长程度:这与AI训练时使用的语料丰富程度和训练方法密切相关。日常实践中事实也证明,像Rust这样语法复杂的语言,AI生成的代码可能更容易出现编译错误。相比之下,Go语言生成的代码往往更容易直接运行。
  • 编程任务的特性:不同类型的编程任务可能更适合不同的AI辅助方式。

注:随着AI在推理方面的提升(乃至形成独立的推理层),“过提示工程”可能不仅无法提高推理性能,还有可能妨碍模型工作。也就是说对于推理能力越来越强的大模型,反倒是提示词越简洁越好,因为思维链都隐藏到了模型内部,如果再用思维链提示反而会适得其反。

当前AI的局限性与未来展望

当前的AI系统更像是一个知识数据库,主要基于已有的知识进行推理,与现实世界的互动能力仍然有限,如缺乏访问互联网和本地系统的能力。这种限制导致AI只能生成代码,却无法验证其逻辑是否正确或者能否编译运行。此外,AI与人类的交互手段仍相对初级,大多局限于文本、图片或语音的形式,这些方式在面对复杂需求时显得笨拙。

那么未来理想的AI辅助编程模式应该是什么样的呢?我认为应是端到端编程,即通过多种交互手段(自然语言、语音、图片以及将来的未知方式等)输入需求,AI直接输出已部署完毕且可正确运行的完整程序。在超级AI时代,这种编程模式将成为现实,届时AI与程序员的交互方式将迎来革命性变化。

我们可以将当前阶段称为”AI的过渡时代“。正如OpenAI的Sam Altman所预言那样,真正的智能时代可能还需要几千天才能到来。在这个超级AI出现的时代,端到端的编程模式可能才会真正实现。

根据Sequoia Capital的最新研究报告,AI技术正在从”快速思考”(System 1)向”慢速思考”(System 2)演进。System 1指的是快速、直觉性的反应,而System 2则涉及更深层次的推理和问题解决能力。这种演进正在推动一种新的”推理层”的发展,这可能是通向真正智能时代的关键一步:


来自Sequoia Capital的最新研究报告

超级AI时代的编程模式可能包括:

  • 脑机接口:通过思维直接传达编程意图。
  • AR手势交互:在虚拟空间中操控代码组件,如钢铁侠电影中的场景。
  • 多模态融合交互:结合语音、手势、眼动跟踪等多种方式。
  • 自适应自然语言处理:AI能够理解和解析非结构化的自然语言,转换为代码逻辑。

这些技术的发展可能会让未来的编程体验更像是与高度智能的助手协作,而非单纯的工具使用。如今脑机接口、AR增强现界等技术也在快速演进,很可能与超级AI带来的智能时代同时到来。

程序员角色的转变

在超级AI时代,程序员的角色将发生显著的变化。程序员基本上不再编码,而是更多地转变为”系统架构师”、”AI协作者”和”创新推动者”。他们的工作会更多地涉及高层次的问题解决、创新思考和跨学科合作。技术知识仍然重要,但更重要的是理解业务需求、系统设计、伦理考量和用户体验等更广泛的技能。

Sequoia Capital的报告指出,随着AI技术的进步,软件开发正在从”软件即服务”(SaaS, Software as a Service)模式转向”服务即软件(Service as a Software”模式。这意味着AI应用不仅仅是提供软件工具,而是直接提供完整的服务解决方案。这种转变将极大地扩展AI应用的市场,从软件市场扩展到更广阔的服务市场:


来自Sequoia Capital的最新研究报告

注:怎么理解“服务即软件”(Service as a Software)呢?想象一下,之前你的公司购买了一个人力资源管理的SaaS服务,这种购买仅仅让你能够使用其功能,但谁来操作这些功能呢?你的公司依然需要雇佣专门的HR人员来通过Web、GUI客户端或App进行管理。而“服务即软件”则将这两方面“打包”在一起。你无需再招聘专员来操作,只需提出你的需求即可。这种模式有点类似于现代的HR劳务外包,但不同的是,在智能时代,这种外包的真正执行者不再是“人”,而是AI应用和支持AI运行的算力。这样一来,你可以更高效地满足业务需求,而无需担心人力资源的管理和操作。

随着超级AI的出现,我们还可能会看到AI系统不仅能辅助编程,还能自主编写、维护和优化代码,即AI的自主性。然而,这种高度自治的系统也可能面临复杂的自我管理问题。

借鉴《黑客帝国》中的概念,未来的AI系统可能会像一个巨大的自维护程序,但仍需要”异常处理程序”来解决一些无法自动修复的关键问题。在这个场景中,人类程序员可能扮演类似”尼奥”的角色,成为系统无法自行解决问题时的最后求助对象。

这种人机协作模式可能类似于现代软件系统中的”live reload”概念:当AI遇到无法自动解决的问题时,它会寻求人类的帮助,重新加载并修复系统,从而保持整个生态系统的稳定运行。

小结

AI辅助编程技术正处于一个激动人心的过渡时期,距离完全自主的端到端编程还有一定距离。然而,随着技术进步和新型人机交互方式的到来,编程的本质将发生革命性的变化。未来的编程将是人类与AI共同塑造的领域,一个充满无限可能的智能时代。


Gopher部落知识星球在2024年将继续致力于打造一个高品质的Go语言学习和交流平台。我们将继续提供优质的Go技术文章首发和阅读体验。同时,我们也会加强代码质量和最佳实践的分享,包括如何编写简洁、可读、可测试的Go代码。此外,我们还会加强星友之间的交流和互动。欢迎大家踊跃提问,分享心得,讨论技术。我会在第一时间进行解答和交流。我衷心希望Gopher部落可以成为大家学习、进步、交流的港湾。让我相聚在Gopher部落,享受coding的快乐! 欢迎大家踊跃加入!

img{512x368}
img{512x368}

img{512x368}
img{512x368}

著名云主机服务厂商DigitalOcean发布最新的主机计划,入门级Droplet配置升级为:1 core CPU、1G内存、25G高速SSD,价格5$/月。有使用DigitalOcean需求的朋友,可以打开这个链接地址:https://m.do.co/c/bff6eed92687 开启你的DO主机之路。

Gopher Daily(Gopher每日新闻) – https://gopherdaily.tonybai.com

我的联系方式:

  • 微博(暂不可用):https://weibo.com/bigwhite20xx
  • 微博2:https://weibo.com/u/6484441286
  • 博客:tonybai.com
  • github: https://github.com/bigwhite
  • Gopher Daily归档 – https://github.com/bigwhite/gopherdaily
  • Gopher Daily Feed订阅 – https://gopherdaily.tonybai.com/feed

商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言进阶课 Go语言精进之路1 Go语言精进之路2 Go语言第一课 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats