You know, I'm one of these adults that actually still loves playing with LEGO. I loved them way back in the '80s in Berlin when I grew up, and I still love them. And these days, I build LEGO with my kids on Saturday afternoons. And the reason that my love for LEGO has remained evergreen is, quite simply, that LEGO is a system for realizing creativity with almost no barrier to entry.
我是个依然喜欢玩乐高的成年人。 80 年代,我在柏林 长大的时候就爱玩乐高, 现在仍然喜欢玩。 如今,我会在星期六下午 和孩子们一起搭乐高。 我对乐高的热爱 之所以长青,很简单, 是因为乐高是一个几乎没有门槛的 实现创造力的系统。
And I’m not only a LEGO dad, I'm also the CEO of GitHub. And if you don't know GitHub, you can think of it as the home of coding. It's where all the software developers, the chief nerds of our society, collaborate together. And it's part of our mission to make it as easy as possible for every developer to build small and big ideas with code.
我不仅是乐高迷爸爸, 还是 GitHub 的首席执行官。 如果你不了解 GitHub, 你可以把它看作是编程之家。 这是所有软件开发人员, 即我们社会中的首席书呆子们, 共同合作的地方。 我们的一部分使命 就是让每一位开发人员 都能尽可能轻松地用代码 实现大大小小的想法。
But in contrast to LEGO, the process of building software feels daunting to most people. This all started to change when ChatGPT came along in late 2022. Now we live in a world where intelligent machines understand us as much as we understand them. All because of language. And this will forever change the way we create software.
但是与乐高形成鲜明对比的是, 开发软件的过程 对大多数人来说是望而却步的。 2022 年末,ChatGPT 的出现 改变了一切。 我们现在生活在一个 智能机器对我们的理解 与我们对它们的理解相当的世界中。 这一切全都是因为语言。 这将永远改变我们开发软件的方式。
Up until now, in order to create software, you had to be a professional software developer. You had to understand, speak and interpret the highly complex, sometimes nonsensical language of a machine that we call code. Modern code still looks like hieroglyphics to most people. Here's an example. This, from the early 1940s, is the world's first computer programming language, called Plankalkül. It set the foundation for the modern code that we use today. And as you can see, it's a few numbers, some bubbles and some big-ass brackets. Not much humanity here, right?
截至目前,要开发软件, 你必须是一名专业的软件开发人员。 你必须能理解、能表达、能解释 高度复杂又时常无意义的机器语言, 我们称之为“代码”。 对于大多数人来说, 如今的代码仍然像象形文字。 举个例子: 图上的代码来自 19 世纪 40 年代早期, 是世界上第一种计算机编程语言, 叫作 “Plankalkül”。 它为我们今天使用的 现代代码奠定了基础。 如你所见,有一些数字、 一些气泡和一些巨型大括号。 没什么“人性化”的元素,对吧?
Flash forward about 20 years to the programming language called COBOL. COBOL was invented during the Eisenhower years, but it remains an important language for many of our largest financial institutions. Wall Street, your savings account, your credit cards, all run on this today. And we see some familiar words here. But structurally, I think this doesn't make much sense to most of you.
快进 20 年, 到名为 “COBOL” 的编程语言。 COBOL 是在艾森豪威尔时代发明的, 但它仍然是我们许多 头部金融机构使用的重要语言。 华尔街、你的储蓄账户、 你的信用卡, 现在都靠这种语言运行。 我们看到了一些熟悉的词语。 但是从结构上讲, 我认为很多人都看不太懂。
Flash forward another 30 years to 1991, and we saw the birth of Python, one of the most popular programming languages in this era of AI. In 80 years, we went from bubbles to brackets, to blips of English, and yet, we got nowhere near as close as the intuitiveness of human language.
再快进 30 年,到了 1991 年, 我们见证了 Python 的诞生, 它是如今的 AI 时代 最受欢迎的编程语言之一。 80 年来,我们从气泡走到了括号, 再到零星的英语, 但是远不及 人类语言的通俗易懂。
But then came June 2020, and we got early access to OpenAI's large language model, then called GPT-3. It was COVID, we were all on lockdown, I remember we were on a video call together. We fed random programming exercises into this raw model, and like magic, it solved 93 percent of them during the first few takes. We at GitHub recognized we had something remarkable in our hands, and we quickly turned around a novel developer tool called GitHub Copilot: an AI assistant that predicts and completes code for software developers. Copilot is now the most adopted AI developer tool on the planet. The age of programming has been reborn.
但是随后到了 2020 年 6 月, 我们抢先体验了 OpenAI 的大语言模型, 即后来的 GPT-3。 当时是疫情时期,我们都被封控在家, 我记得我们当时一起开了个视频会议。 我们向这个原始模型 输入了随机的编程练习, 就像魔法一样, 它在前几次尝试中 解答了 93% 的练习。 在 GitHub 的我们意识到 我们手上有一些不得了的东西, 于是我们迅速开发了一款 名为 GitHub Copilot 的新型开发者工具: 一款为软件开发者 预测并完成代码的 AI 助手。 Copilot 如今是地球上 使用最广泛的 AI 开发者工具。 编程时代已经重生。
But the possibilities of the breakthrough went further than just these business results. Because the large language models that power ChatGPT and Copilot are trained on a vast library of human information, they understand and interpret nearly every human language, every major human language. They seem to get us. We have struck a new fusion between the language of a human and a machine. With Copilot, any person can now build software in any human language with a single written prompt. Goodbye to the bubbles and the big-ass bracket.
但是突破的可能性带来的 远不止它们的商业成果。 由于驱动 ChatGPT 和 Copilot 的大语言模型 是由海量的人类信息库训练而来的, 它们几乎可以理解和解释所有人类语言, 所有主要的人类语言。 它们似乎可以理解我们。 我们实现了人类语言 和机器语言之间的新融合。 有了 Copilot,现在人人 都可以用任意人类语言 编写提示词来开发软件。 再见了气泡, 再见了巨型大括号。
This is the most profound breakthrough to technology since the genesis of software development itself. Today, there are over 100 million developers on GitHub. That's about one percent of the world's population, you know, plus-minus. I think that number is about to explode. And I want to show you why, here on my MacBook.
这是自软件开发起源以来 技术领域最重大的突破。 如今,GitHub 上 有超过 1 亿开发者。 差不多是世界人口的 1% 左右。 我认为这个数字即将爆炸式增长。 我想告诉你为什么, 就用我的 Macbook。
We started it all with the original Copilot or how we say the OG Copilot, and it literally just predicted and completed code in the editor. You can think of the editor as, you know, the Google Docs for developers. And when you have a doc open, you know how it is, empty page, what do I actually want to do? And I mentioned LEGO. So let’s build a 3D LEGO brick on a web page. So what developers do, you know, they start typing. And so I typed in the JavaScript file, create a function to create a LEGO brick. And you can see here this gray text, we call this ghost text. This is coming from the large language model. So now I can just press the tab key and press enter. And I get another suggestion, you know, to create a LEGO tower. Maybe we do that later. Or I can just do: function draw LEGO brick. And here again you see ghost text from Copilot right away available for me. And if I like what I'm seeing here, so I get into a mode of writing and understanding, I can just accept this. Developers love that, right? Because instead of writing ten lines of code themselves or copy and pasting them from the internet, they get them right in their editor. They can stay in the flow.
一切从初始的 Copliot, 或者我们口中的 OG Copilot 开始, 它实际上就是在代码编辑器中 预测、完成代码。 你可以把编辑器想象成 开发人员的谷歌文档。 你打开了一个文档, 你知道是什么样,就是空白页, 我想干什么呢? 我提到了乐高。 那我们就在网页上 做一个 3D 的乐高积木吧。 开发人员会开始打字。 我在 JavaScript 文件中开始打字, 创建了一个构建乐高积木的函数。 你可以看到这个灰色文本, 我们称之为“幽灵文本”。 这是大语言模型生成的。 我可以按下 Tab 键, 再按下回车。 我收到了另一条建议: 搭建一座乐高塔。 也许我们稍后再做。 或者我就这么输入: function drawLegoBrick。 你可以再次看见 Copilot 提供的 幽灵文本立即出现在我眼前。 如果我喜欢看到的内容, 那么我就会进入编写和理解的模式, 我只要接受就行了。 开发人员喜欢这样,对吧? 因为比起自己编写十行代码, 或从网上复制粘贴, 他们可以直接在编辑器里得到代码。 他们可以保持思路。
Now what the OG Copilot didn’t offer me is a way to interact with this. I cannot ask questions, I cannot, you know, instruct it to do different things. Last year we launched a new feature, Copilot chat, and you can think about it as ChatGPT in your editor. So I can open this up here in the sidebar. And now I can tell it to create a whole web page with a 3D LEGO brick for me. Now you know, similar to ChatGPT, it streams the response, and it gives me not only some code but it actually gives me an explanation. You know, it starts writing code, you can see the comments that explain what that code does. It uses an open-source library called Three.js. And so you can kind of see here the idea of this empowering developers and people that want to learn development. And it ends, you know, with another explanation. Now I can go here, inspect that code, and I can actually push that button to copy it into my file.
OG Copilot 没有给我提供的是 与它互动的方式。 我不能问问题, 我不能指挥它做各种事。 去年我们推出了一个新功能, Copilot Chat, 你可以把它想象成 编辑器中的 ChatGPT。 我可以在侧边栏打开它。 我可以让它为我创建一整个网页, 上面放一个 3D 的乐高积木。 类似于 ChatGPT, 它会采用流式回答, 它不仅会给我一些代码, 还会给我一个解释。 它开始编写代码, 你还能看到注释 解释这行代码的作用。 它用了一个 叫做 Three.js 的开源库。 你可以从中看到增强开发者 及想要学习软件开发的人的能力的想法。 最后它又给出了一个解释。 我可以找到这个位置, 检查这段代码, 按下这个按钮, 复制进我的文件。
But I want to show you something else here. And you might have already seen this little mic icon. I can use that to speak to Copilot. And I want to ask it, in German, what that code does that is on the left side in the editor.
但我想展示一些别的东西。 你可能已经看到了 这个小小的麦克风图标。 我可以用它来和 Copilot 说话。 我想用德语问这段代码是干什么用的, 就是编辑器左边的这段。
(Speaking German) Can you explain to me what that code does?
(德语)你能解释一下 这段代码是干什么的吗?
And now Copilot responds again, but it responds in German to me, right? So it says, if I loosely translate, "Yes, of course, this JavaScript code defines a function named ‘drawLEGOBrick.’”
Copilot 又回复了, 但它是用德语回复我的,对吧? 如果我粗略地翻译一下,它在说: “当然可以,这段 JavaScript 代码定义了一个函数, 叫做 ‘drawLegoBrick’。”
So you get the idea here. A six-year-old in Berlin, in Mumbai and Rio, can now explore coding without their parents being around or even having a technical background.
你可以理解这个意思。 柏林、孟买和里约的六岁孩子 现在可以在父母不在身边, 甚至没有技术背景的情况下探索编程。 (笑声)
(Laughter)
我的意思是,你懂得。
I mean, you know.
(Applause)
(掌声)
Now what you also see is you still need to kind of figure out how you put that all together, right? There’s a lot of technical stuff here. I have code. I have to iterate on my machine. I have to figure out how to deploy this to the cloud so I can share with my friends. But here is my LEGO brick now. This is what it looks like if I've done all these steps as a developer, you can see now it’s a nicely rotating brick. I can actually use my mouse to turn it around. These are the anti-studs here, the studs, There's nice lighting effects. I can even zoom into this and zoom out of this.
你还可以看到, 你依然需要指出 如何把它们组合在一起,对吧? 有很多技术方面的东西。 我有了代码, 我得在我的机器上进行迭代。 我必须弄清楚 如何将其部署到云端, 这样我才能与朋友共享。 这就是我的乐高积木。 如果我作为开发者完成了这些步骤, 就会得到这样的结果, 可以看到这块旋转的漂亮积木。 我可以用鼠标转动它。 这些是接合孔和凸起, 光照效果很不错。 我还可以放大缩小。
Now I don't want to do all this developer stuff anymore. I just want to channel my creativity straight into reality. And so for the first time ever on stage, I'm going to show you a new product that we call Copilot Workspace that does exactly that. So here is my workspace. And you can already see there's not an editor anymore. I can just see a task, and I can enter a task. And so now I have my LEGO brick, I want to now expand the LEGO brick into a LEGO house. Stack the bricks in the shape of a LEGO house. And I can do that also in German and in other languages. But for now, let's stick with English. I can save my task. And now what happens is that Copilot Workspace analyzes what I already have and then describes what it proposes to me. Basically, it reframes my ask into a plan or a specification. And so you can see here, you know, it's all in natural language in our user. Some file names, of course, but there is no code here. It's all describing it in English. I can actually go into this and edit it and can make changes to this line, or I can go down here and add another item if I feel like the plan is not exactly what I want. I can go a step further and generate a plan, and now an agent runs through all my files I already have and figures out how do I need to modify those files, or, you know, do I need to add files to my repository so you know it wants to add a “create<b>LEGO</b>House” function and call the “createLEGOHouse” afterwards. Looks good to me, so let's implement this. And now Copilot uses my task, my specification, my plan to write code for me. You can see here two files are queued, the public/legoBrick.js file and boom, there's already my code written for me, right?
我再也不想做这些开发者的事了, 我只想将创造力直接转化为现实。 我将向你们展示 一个新产品的公开首秀, 它叫 Copilot Workspace, 做的就是这件事。 这是我的工作区。 可以看到已经没有编辑器了。 我只看到一个任务, 然后输入一个任务。 我现在已经有了一块乐高积木, 想把乐高积木扩展成一座乐高屋。 “把乐高积木拼成 一个乐高屋的形状。” 我也可以用德语 和其他语言做到这一点。 但是我们现在还是用英语吧。 我可以保存我的任务。 现在 Copilot Workspace 会分析我已经拥有的东西, 然后描述它向我提出的建议。 它其实将我的请求 重新制定成了一份计划或规范。 你可以看到它都是 用自然语言输出给用户的。 当然,有些文件名, 但是这里没有代码。 都是用英语描述的。 我可以点进这一句,编辑, 修改这一句, 我也可以点击下面,添加一条, 如果我觉得这个计划 不符合我想要的。 我可以再进一步, 生成一个计划, 智能体会遍历我的所有文件, 弄清楚我该如何修改这些文件, 或者我是否需要 将这些文件进入我的代码库, 这样它就可以添加一个 “createLegoHouse” 的函数, 之后再调用 “createLegoHouse” 函数。 我觉得不错, 那我们来对这些文件进行操作。 现在 Copilot 使用 我的任务、 我的规范、 我的计划来为我编写代码。 你可以看到这里有两个文件在排队, public/legoBrick.js 文件, 然后一瞬间, 我的代码已经为我写好了,对吧?
I didn't have to touch code, I didn't have to even know what code is. Now I see here now it imports some new line into my file and has written, you know, lots of code here that does those changes.
我不必接触代码, 甚至不需要知道代码是什么。 我可以看到它向我的文件里 导入了几句新代码, 还写了这里的很多代码来实现这些修改。
So you want to see what that looks like, did we get a LEGO house? So here's a button that lets me open a live preview, so I can do this. And now the bricks fall from the sky and I have a LEGO house. And you know, this is not a picture, right --
你们想看看结果如何吗? 我们得到一座乐高屋了吗? 这里有一个按钮, 我可以打开一个实时预览, 我可以这么做。 积木从天而降, 我就得到了一座乐高屋。 这可不是一张图片——
(Applause)
(掌声)
Yes, thank you. This is all live, this is the power of code, this is the power of streaming my creativity into reality with natural language.
没错,谢谢。 这都是实时的, 这就是代码的力量, 这是用自然语言 将我的创造力变成现实的力量。 现在还有最后一件事。
Now one last thing. Thank you, Copilot, you have always to be nice to the AI.
谢谢你,Copilot, 你得一直友好地对待 AI。
(Laughter)
(笑声)
(Applause)
(掌声)
Now, what you just saw were three leaps in three years. Three leaps that are more progress to the accessibility of computer programming than we have made in the last 100. Remember how I said that one percent of the world's population is a developer? Now you can see how this will change. Copilot Workspace may still be a developer tool right now, but soon enough these kind of developer tools will become mainstream. Because, going forward, every person, no matter what language they speak, will also have the power to speak machine. Any human language is now the only skill that you need to start computer programming. This will lead to a globalized groundswell of software developers, and it will reshape the geography of our global economy.
你刚刚看到的是 三年内的三次飞跃。 这三次飞跃比过去 100 年内 我们在计算机编程的无障碍方面 取得的进步还要大。 还记得我说过 全球 1% 的人口是开发者吗? 你会看到这将发生怎样的变化。 Copilot Workspace 目前可能 仍然是开发者工具, 但很快这类开发者工具将成为主流。 因为,展望未来,每个人, 无论他们说什么语言, 都会有能力与机器“说话”。 开始计算机编程所需的唯一技能, 就是任意的人类语言。 这将带来软件开发人员的全球性激增, 并将重塑全球经济的地理格局。
And because of this, I think by 2030, maybe even sooner, we will have more than one billion software developers on GitHub. Think about that: 10 percent of the world’s population will not only control a computer but will also be able to create software just [as] if they were riding a bicycle. This will generate a new renaissance of human creativity with software. Now anyone here in this room could have a brilliant idea right now: a website, an application, a cool computer game, an amazing song, maybe even a cure for something. For example, last year, over a couple of weeks, I built an app that tracks all the flights I've ever taken in my life. Now I know what you're thinking. What a freaking nerd, right? And yeah, it's true, I love building stuff like this. And with the help of AI, now I can do this in English or in German before I even finish a glass of wine. And soon enough, this will be true for everyone here. The floodgates of nerditude have swung wide open.
因此, 我认为到 2030 年,也许更早, 我们将在 GitHub 上 迎来超过 10 亿的软件开发人员。 想像一下: 全球 10% 的人口 不仅能控制计算机, 而且还能像骑自行车一样开发软件。 这将通过软件 开创人类创造力的新复兴。 在座的任何人 现在都有了绝妙的主意: 一个网站,一个应用程序, 一个很酷的电脑游戏,一首很棒的歌曲, 甚至可能是治愈什么的方法。 比如去年,在几周的时间里, 我开发了一个应用程序,可以追踪 我一生中乘坐过的所有航班。 我知道你在想什么。 真是个该死的书呆子,对吧? 是的,没错, 我喜欢创造这样的东西。 在 AI 的帮助下, 现在我甚至可以在喝完一杯酒之前 用英语或德语完成这件事。 很快,人人都会有这样的体验。 书呆子的闸门已经敞开了。
(Laughter)
(笑声)
(Applause)
(掌声)
Now this doesn’t mean that everyone will become a professional software developer or even that they should. The profession of a professional software developer is not going anywhere. There will always be demand for those that design and maintain the largest software systems in the world. We are adding millions of lines of code every single day to ever more complex systems, and we are barely keeping up with maintaining the existing ones. Like any infrastructure in this world out there, we need real experts to preserve and renew it.
这并不意味着 每个人都会成为 专业的软件开发人员, 或者每个人都应该成为专业开发者。 专业软件开发人员的专业性不会丧失。 永远都有设计、维护 世界上最大的软件系统的需求。 我们每天都在向越来越复杂的系统中 添加成千上万行代码, 但我们几乎无法 及时维护现有的代码。 如同世界上存在的任何基础设施, 我们需要真正的专家保护、更新它。
The point here is not a "will" or a "should." It's that anyone can. All because the most powerful system that we have, any human language, is now fused to the language of a machine. And very soon, building software will be just as simple and joyful as stacking a LEGO.
关键不是“将要”还是“应该”, 而是人人都“可以”。 一切都是因为我们拥有的 最强大的系统, 任何人类语言, 现在都融入了机器的语言。 很快, 开发软件就会像 搭乐高一样简单而愉快。
(Speaking German) Thank you very much.
(德语)非常感谢。
(Applause)
(掌声)
Bilawal Sidhu: Gosh, I've got to say, one billion developers makes GitHub sound more like YouTube and TikTok than it is today. Just super exciting. Got to ask you one question, perhaps the elephant in the room. Amazing talk. So you said the developer is still in charge. You also said, "We've had three leaps in three years." Fast forwarding a little bit, do you think humans will still need to be in the loop, or will these AI systems be able to autonomously build and maintain software?
拉瓦尔·西杜(Bilawal Sidhu): 天哪,我不得不说,十亿开发者, 让 GitHub 听起来比现在 更像 YouTube 和抖音了。 太令人激动了。 我想问你一个问题, 可能是个大家心知肚明的问题。 精彩的演讲。 你说主导权仍在开发者手中, 你还说: “我们在三年内取得了三次飞跃。” 稍微快进一点, 你认为人类依然需要参与进来, 还是这些 AI 系统 能够自主开发和维护软件? TD:我一直在思考和谈论这个问题,
TD: You know, the way I always think and talk about it is that we called it Copilot for a reason. We need a pilot. We need a pilot that is creative, that can decide what to do. It’s kind of like a LEGO set. You need to take this big problem and break it down into smaller problems, into small building blocks. And for that, you need a systems thinker. You need a human that can figure out, am I building a point of sale system? Am I building an iPhone app? Am I building a cool computer game? Am I building the next Facebook? Those are very different systems. Now these building blocks, they will grow in size. Today it's, you know, a couple of lines of code, maybe a whole file, in the future, it might be a whole subsystem. So I get more work taken off my shoulders. But I'm still there, you know, covering the large system. And as I mentioned, you know, we're still running COBOL systems from the '60s. So we have lots of work to do. BS: Absolutely. So we will be in charge orchestrating these systems at a higher level of abstraction.
我们称之为 Copilot (意为“副驾驶”)是有原因的。 我们需要驾驶员。 我们需要有创意的驾驶员, 决定要做些什么。 它就像乐高套装。 你得把这个大问题 分解成小问题, 分解成小块。 为此,你需要系统的思考者。 你需要一个人类来弄清楚: 我是要开发一个销售终端系统吗? 我是要开发一个 iPhone 应用吗? 我是要开发一款很酷的电脑游戏吗? 我是要打造下一个 Facebook 吗? 这些都是截然不同的系统。 这些模块会越来越大。 现在的几行代码, 也许是整个文件, 未来可能会是整个子系统。 这样我要承担的工作就越来越少了。 不过我依然会负责这个大型系统。 如我所说,我们仍在运行 60 年代的 COBOL 系统。 所以我们还有很多工作要做。 BS:当然。 我们会负责在更高的抽象层次上 协调这些系统。
Thomas Dohmke, everybody, thank you.
谢谢托马斯·多姆克 (Thomas Dohmke),谢谢大家。
TD: Thank you so much.
TD:非常感谢。