与微软“代码女王”关于GitHub、智能编程的一小时对谈
12 小时前 / 阅读约15分钟
来源:36kr
微软Julia谈AI编程未来,开发者须掌握技能。

在全球,智能编程的市场规模预估为百亿美元量级。

而在这其中,Julia Liusion 是最为关键的人物之一。GitHub、Visual Studio、TypeScript 、Azure 开发者平台……在微软,你能叫出名字的一切开发者服务项目,几乎都处于 Julia 的直接管理之下。Anders Hejlsberg、Erich Gamma 等一众顶尖技术大牛,都在 Julia 的团队中向其汇报。

加入微软超过三十年,Julia 不仅深度塑造了微软的开发者文化,也带领微软的相关产品成功跨越周期——GitHub Copilot 成为有史以来第一款由 GenAI 驱动的大型智能编程应用,到了 2025 年 5 月,用户规模已经超过 1500 万。

编程界最有权势的“代码女王”?这是一个数年前诞生自中文互联网的“古老称呼”,但到今天为止,依然是对 Julia Liusion 最形象的描述。

在对话开始前,InfoQ 试图用一个小时的时间,来寻找多个关键问题的答案,包括:微软和 Cursor 关于 C/C++ 插件的授权争议、微软内部对于智能编程的思考、微软大牛如何使用 AI 工作、微软如何围绕 AI 面试程序员等。问题很多,时间紧张。

但在对话结束后,我们惊讶的发现,那些令常人难以企及的成绩,往往诞生于简单甚至古朴的思考逻辑。一方面,Julia 及其团队,多年来坚持着源自微软早期的技术价值观毫无动摇,另一方面,又对 GenAI 极为乐观,提倡“prompt every day”,并期待着全球出现 10 亿新兴开发者。

Julia 披露,在产品设计问题上,因 AI 发展速度过快,微软与许多企业一样,总是“计划赶不上变化”。更进一步,在 Julia 看来,架构师应该适当放弃对稳定性、可扩展性的设计执念,围绕 GenAI 的能力提升,不断地否定和重写过去的代码。

对于工程师而言,Julia 认为,面试“刷题”变得越来越不重要,使用 AI 工具的熟练度成为了“必考题”。

更多与 Julia 的对话内容整理如下,InfoQ 在不改变原意的情况下稍加整理。

InfoQ: 为何限制 Cursor 使用微软官方插件?

Julia:有几件很重要的事情,我觉得要区分一下。开源指的是什么?开源指的是代码的开源。大家都知道 Visual Studio 是一个付费产品,发行了很多不同的二进制软件包,有些是完全通过开源软件编译生成的,比方说 TypeScript、 C# 的编译器,但有些可能包含了闭源内容,是付费产品的一部分。

Visual Studio Code 还有很多插件也是闭源的,要从 Visual Studio Marketplace 来获取,要遵守相关的服务协议。Visual Studio Marketplace 的服务协议写得很清楚,相关插件只提供给 Visual Studio 和 Visual Studio Code 使用,不包含任何其他产品。从十几年前,Visual Studio Marketplace 上线开始,该条协议就没有改变过。

类似的案例比比皆是,比如 C ++ 的插件不开源; c# 插件有一部分是开源的,有一部分是 闭源的,Python 也是一样。

所以 cursor 或者 Windsurf,基于开源软件, fork 一个源代码分支是没有问题的。

但它直接在 Visual Studio Marketplace 下载插件,可能还做了二进制补丁,是违反服务协议的。Windsurf 就没有这么做,很守规矩。我们欢迎竞争,但希望是良性竞争。

开源和开源软件的最终实现,是两回事,源代码永远是二进制软件包的一部分,二者并非 100% 保持一致, 不要把二者混淆在一起。

InfoQ:曾经在微软 Build 大会上,您预言:未来的开发者,都应该是 AI 开发者。到了今天,预言好像已经变成了现实,开心吗?

Julia:哈哈哈,很开心。

InfoQ:和当初的想象,有什么差异吗?

Julia:我觉得,现在的 AI,比我当初想象的 AI ,能力要强太多了。当时的 AI 还像一个小朋友,今天的 AI 完全是颠覆性的。从 GPT 3.5 发布之后,AI 发生了质的改变,超出了我的想象。我经常跟我的团队说,以前好像还是马车时代,现在已经是汽车引擎时代。

InfoQ:智能编程引人瞩目,微软应该也很关注这一领域?

Julia:应该说,微软是发起者,GitHub Copilot 是行业内第一个大型 GenAI 智能编程应用。

InfoQ:那么能否分享一下,过去三年,微软在设计智能编程产品的过程中,思路上有什么变化?

Julia:过去三年,微软对 AI 的理解变得越来越深。另外,微软和业界一样,都觉得计划赶不上变化。GitHub Copilot 的第一个预览版,实际上在 2021 年的夏天就推出了。只有一个功能,就是在你做自动补全的时候, AI 跳进来,给你推荐一段代码。实现这个功能,需要开发者给出提示词,说明目的,来提升代码补全的效果。

等到 ChatGPT 出来之后,我们发现,咦,实际上开发者可以和 AI 对话,通过大模型来理解代码,使得智能编程工具的能力得到很大的提升。所以 GitHub Copilot 是逐步变成今天的样子。

但当时我做了一个判断,我觉得,放在今天仍然适用。

很多技术人员写完代码之后,觉得非常喜欢自己的代码,越看越喜欢。让他把这段代码干掉,对他而言,是一个比较困难的事。相当于你在否定他。所以我做了一个预言:就是在 AI 时代,你要不断否定自己以前写的代码。

另外,我们通常比较习惯做大的系统工程。比如 Azure,或者某个操作系统,需要有很强的稳定性。围绕架构的可扩展性,做很好得设计。但在 AI 时代,当你开始想这些设计性、扩展性的时候,就已经晚了、慢了。

因为 AI 的能力进化得非常快,可能以前需要用某段代码来解决的问题,过了一周、一个月、两个月,用大模型就可以自动解决。所以你得不断去否定、不断去重写,不断去创新,这对很多工程师来说,都是一个新的挑战,也是一种全新的软件开发思路。

所以关于 GitHub Copilot, 我们从战略规划开始,就想走在 AI 的最前沿,根据大模型的能力,不断推出新的功能。从最简单的编程助手,到“agent mode(代理模式)”,未来再到 vibe coding(氛围编程),给 AI 一个创意,AI 就会帮你实现这段代码。

当然,表达能力越强,智能编程的效果也会更好。AI 就像一个校招的大学生,对业务完全不了解,需要你将需求和背景描述清楚。如果你都说不清楚,那 AI 就更不清楚。很多开发者在自我介绍时,会提到自己比较内向,表达能力不行,但代码能力还不错。到了 AI 时代可能就要突破这个短板。

InfoQ:如您所说,该如何看待“AI 越来越强,开发者的重要性在下降”这一观点?能否给开发者三个建议?

Julia:可以看看 SWE-bench Verified 榜单,问题解决率最高也只达到 65% 左右。你想想,如果你有一堆系统问题需要解决,但 AI 解决简单问题的成功率也只有 65% ,说明 AI 还有一些路要走。再比如说 vibe coding,做个小 APP 还好,解决生产级的工程问题,可能就很难。

其中难点在于,AI 不清楚某段代码的上下文,即使是一个初来乍到的人类工程师,也很难说清楚某段代码在整个生产线中里的具体作用。只有对业务全流程有了解,才能理解具体模块的划分逻辑。而这也是 AI 接下来会面临的挑战。

以前如果要进大厂,开发者就会去刷题。其实在我看来,刷题没有意义。AI 做题比人类快多了。

但是作为人类,你可以去了解整个业务和生产线,业务的价值与核心矛盾究竟是什么,用户的诉求是什么,要解决的问题是什么。我不觉得当前的 AI 能理解好这些内容。

另外人才是决策者,人和 AI 的协作有点像一个开发经理带着一群工程师,对业务的理解才是核心。

所以我给工程师的三个建议是:

  1. 工程师要去理解“What”,而不是只是“How”,理解项目的本质和用户的价值,否则就和 AI 区别不大。
  2. AI 会提出很多种解决方案,工程师要有判断能力,要有能力做 trade-off。
  3. 智能编程是个全新的工具,需要学习才能上手,我要求我的团队要 “prompt every day”,如果一个工程师现在还没有开始学习 AI 的话,那他是绝对会被淘汰的。

InfoQ:如何理解“AI 原生 IDE” 的概念?

Julia:我觉得今天我们就是在做 AI 原生 IDE 。所谓 AI 原生 IDE 就是以 agent mode 为主,一些比较激进的公司,会说作为开发者不用写代码,先写个 PRD,写个业务需求,然后让 AI 去生成代码,工程师做 Codereview。项目构建是以单元测试开始的,而不是以写代码开始的。

所以现在一些 PM 也不去求工程师写代码了,把 PRD 写出来,然后生成代码,再让工程师 Check 一下。

但是相应的代码审查工作也比较难做,很多公司的测试能力相对较弱,AI 的agent mode 一下修改了几百个文档,如何确保 AI 没有把业务逻辑改坏了,是需要不断去研究的。

这反而更考验架构师、工程师的业务理解能力。

InfoQ:以 GitHub 为例,如何确定产品的核心设计逻辑与更新节奏?

Julia:我们的逻辑主要是用户需求驱动和企业需求驱动。我们有非常好的用户反馈机制,全球几千万用户会源源不断给我们提供反馈。所以我们很容易理解用户的使用痛点。

我们希望能够帮助开发人员去写只有你能写的代码。把所有浪费时间的问题都解决掉,让你专注于创新,这是我们做产品的主轴线。

InfoQ:对于高级开发者而言,是这样的,但如果面向初中级开发者,一些教育公司连基本的招生都比较困难,初中级开发者该如何应对被 AI 替代的焦虑?

Julia:开发者都是从初级、中级升到高级的,这条路是不可避免,没有人生下来就是高级开发者,对吧?实际上在 AI 出现之前,在全球至少存在百万级的开发人才缺口,很多公司想招合格的开发者,但是招不到。而且不管是欧美还是东亚,每年出生的新生儿数量也是在下降的。

所以从另一个角度来看,我们确实需要更多的自动化。

另外刚才我们聊到,一个 PM 可以成为一个开发者,一个分析师也可以成为一个开发者,所以开发者的定义,实际上是在被拓展的。现在的开发者,我们称其为 professional developer。但各行各业都可以通过 AI 来解决重复性工作,我们希望看到全球有 10 亿新兴的开发者。

InfoQ:微软有很多专业开发者,AI 如何影响微软自己的研发流程吗?大家的开发状态出现了哪些变化?

Julia:变化非常大,每一个公司、每一个行业、每一个角色、每一个流程,都可以想想怎么用 AI 来增强。

有很多工程师的工作任务是在全球范围完成大型软件的部署,经常会碰见各式各样的问题,需要工程师半夜爬起来,定位在某一个数据中心遇见了什么样的问题。实际上类似的问题存在很多共性,我们可以把它做成一个 agent,自动解决。这样也许我只需要去重启一下机器,就可以了。不需要把工程师半夜叫醒,这是蛮痛苦的一件事情。

以前类似的问题需要外包、全职工程师配合解决,AI 只能解决其中很小的一部分。后面可能都不需要外包,AI Agent 来解决大部分问题,实在解决不掉的问题由全职工程师来解决。

此外,一些欧美公司的客户支持工作做得很有问题,有时候客服电话甚至是打到印度去的。那么一些比较激进的公司,就会在客户支持工作上深度集成 AI——他们会将客户知识库全部买过来,然后 AI 化,收取的服务费逐年下降,接管客户支持工作,保证客户满意度不下降,可能还会出现上升。

InfoQ:受 AI 影响,招聘规则是否也发生了变化?

Julia:我们的招聘规则发生了非常大的变化。以前我们做招聘,会先远程面试。但现在就会担心,如果面试者用 AI 来回答问题怎么办?哈哈哈。

现在我要考你的 AI 工具用得熟不熟练?到了现在这个阶段,AI 工具用得还不熟练,我就不找你了。

我们的面试问题也完全不同。我们会更好地考察他的判断力,看他的解题思路。至于写代码测试,相比之下就不是特别重要了。

InfoQ:微软内部有很多世界级的编程大师,他们的工作状态发生变化了吗?他们平时怎样用 AI ?

Julia:我现在发现的一个非常有趣的事情是,越是顶尖大牛,越对技术有一种天然的好奇心,他就非常愿意去学。一般来说,这种顶尖大牛,AI 用得是最多的。当然了,他们一般也不会把每天的时间都用来写代码,他们一般会去做很多探索性质的工作。

比如 Erich Gamma 一开始就在用 GitHub Copilot ,很早就开始关注 Cursor。Typescript 和 Java 是他最熟的编程语言,有一次要写 Go 语言,他想了想,先去写了 Typescript ,然后用 AI 重写成了 Go,这可能是两年多前的一个案例。

另外一个大牛,因为要解答很多社区问题,就做了一个小程序,每个问题先让 AI 解答一遍,然后他看一下。如果这个答案好,他就直接采用;如果答的不好,他再重新编一下。

你会发现,顶尖大牛总会想各种各样的方法来对 AI 进行探索,一直在玩新的技术,不断思考怎样用新技术让生活变得更好。

InfoQ:GitHub 以及相关产品,广受全球开发者欢迎。在这些产品的研发过程中,微软如何避免“创新者的窘境”?

Julia:我们有一些先天优势。我们应该是全球对开发者领域耕耘最深的企业。“吃自己的狗粮”是我们的信仰,微软面向开发者的产品,所有的微软团队每天都在用,而且会给我们非常“粗暴且直接”的反馈,告诉我们什么东西好用,什么东西不好用,这保证我们能把所有的产品做好。如果你是个初创团队,就不太可能有这么多用户给你反馈。

InfoQ:采访开始时,我们提到,Julia 曾围绕 AI 开发者做出了正确的预言。现在请 Julia 对我们未来的三、五年再做一个预言吧。

Julia:我现在不敢预言了,AI 时代真的是发展得太快了。如果一定要做个预言的话,我觉得是,如果你不现在开始学习 AI 技术,那么三、五年后,你是会被淘汰的开发者。