写点什么

独家 | 与微软“代码女王”关于 GitHub、智能编程的一小时对谈

  • 2025-05-19
    北京
  • 本文字数:5177 字

    阅读完需:约 17 分钟

独家 | 与微软“代码女王”关于GitHub、智能编程的一小时对谈

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


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


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


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


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


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


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


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


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


00:00 / 00:00
    1.0x
    • 3.0x
    • 2.5x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00


    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 技术,那么三、五年后,你是会被淘汰的开发者。


    2025-05-19 17:048179

    评论

    发布
    暂无评论

    某程序员毕业进UC,被阿里收购!跳去优酷土豆,又被阿里收购!再跳去饿了么,还被阿里收购!难道阿里想收购的是他?

    程序员生活志

    职场 阿里

    读懂k8s 容器编排控制器 Deployment

    Garfield

    k8s pod k8s入门

    你问我答:现有的应用有必要做微服务改造吗?

    BoCloud博云

    容器 DevOps 微服务 云平台 博云

    XSKY对象存储获全球备份领域领导者Commvault官方认证

    XSKY星辰天合

    数字货币交易平台源码,数字货币交易所开发核心功能

    13530558032

    数字资产钱包开发,数字加密货币app搭建

    13530558032

    云算力挖矿平台APP,算力挖矿建设开发

    13530558032

    挽救你的视频号:能够把PPT转换成视频,把备注转换成语音的开源项目

    陈磊@Criss

    MAC系统初始化

    焦振清

    macos 重装系统

    深圳泰利能源有限公司涉嫌传销 共计2.7亿元

    CECBC

    区块链 基金

    凡泰极客与Rancher达成深度战略合作,加速企业构建私有化小程序生态

    FinClip

    人的转型才是关键 数字化时代你具备数字领导力么

    CECBC

    区块链 数字化时代

    云原生如何来进行HTTPS升级

    soolaugust

    架构 云原生 设计模式

    LeetCode题解:155. 最小栈,单个栈存储入栈元素与最小值之差,JavaScript,详细注释

    Lee Chen

    大前端 LeetCode

    融云Geek Online 2020 编程挑战赛重磅来袭

    InfoQ_967a83c6d0d7

    关于显性知识和隐性知识

    Tanmer

    知识管理 知识产权

    华为云FusionInsight大数据技术普惠创新,释放千行百业数据价值

    数据湖洞见

    大数据 FusionInsight 华为云

    Cassandra Gossip协议的二三事儿

    华为云开发者联盟

    源码 三次握手 开发者 Cassandra Gossip协议

    anyRTC Native 4.1.0.1与Web SDK 4.0.11上线

    anyRTC开发者

    学习 WebRTC 语音 直播 sdk

    SpreadJS 纯前端表格控件应用案例:雨诺订单管理系统(雨诺OMS)

    葡萄城技术团队

    3种双集群系统方案设计模式详解

    华为云开发者联盟

    数据库 数据仓库 数据 双集群系统 双ETL模式

    区块链支付新模式开发,USDT支付系统搭建

    13530558032

    FlinkX 如何读取和写入 Clickhouse?

    Apache Flink

    flink

    1. 不吹不擂,第一篇就能提升你对Bean Validation数据校验的认知

    YourBatman

    Hibernate-Validator Bean Validation 数据校验 JSR380

    话题讨论 | 当你敲代码累了时,一般喜欢吃点什么补充能量?

    InfoQ写作社区官方

    加班 写作平台 代码 话题讨论

    技术分享:即构互动白板音视频同步、多端有序协作技术实践

    ZEGO即构

    音视频 在线教育 SVG

    案例分享丨红外自动感应门设计与实现详解

    华为云开发者联盟

    物联网 传感器 感应探测器 SMT32处理器 感应门

    SpreadJS 纯前端表格控件应用案例:MHT-CP数据填报采集平台

    葡萄城技术团队

    Spring Bean处理器

    语霖

    Spring Framework

    从 Node.js(JavaScript) 到 Golang,我的开发体验

    Garfield

    node.js Go 语言

    区块链助力军事人力资源配置

    CECBC

    区块链 军事

    独家 | 与微软“代码女王”关于GitHub、智能编程的一小时对谈_微软_吉他星系导航员_InfoQ精选文章