文 | 王启隆
出品丨AI 科技大本营(ID:rgznai100)今年四月,GitHub CEO Thomas Dohmke 在 TED 2024 演讲提供了关于人类创造力、编程及人工智能(AI)交叉领域如何改变软件开发领域的深刻见解。
Thomas Dohmke 在 TED 演讲上用幽默风趣的语言把这三年来 AIGC 技术引起的创意革命,完整地介绍给在场的各界人士。
“乐高童年”:Dohmke 先是以乐高玩具(LEGO)为例,指出其简单易上手的特点如何激发无限创意,进而提出 GitHub 的愿景——构建一个平台,让开发者能无障碍地用代码将灵感变现。
他重申了 GitHub 作为促进开发者协作、降低项目大小限制、使软件开发触手可及的平台角色。
编程的传统壁垒:长久以来,复杂的编程语言成为多数人涉足软件开发的高墙。ChatGPT 改写规则:2022 年底 ChatGPT 的横空出世,以其理解并以人类语言交互的能力,彻底翻新了软件制造的版图。
从 1940 年代的 Plankalkül 到 1950 年代的 COBOL,再到 1991 年的 Python,尽管编程语言不断进化,但依然让人感觉遥不可及。
Copilot 的登场:OpenAI 的 GPT-3 驱动的 GitHub Copilot 登场,作为 AI 辅助编程工具,它预判并补全代码,极大提升了开发者效率,使编程门槛大大降低。ChatGPT 和 Copilot 背后的大语言模型,经海量人类知识训练,跨越了人机沟通的鸿沟,实现了多语言的自由转换。
Copilot 使人类语言编程、自然语言编程成为可能,如同软件开发史上的又一次启蒙运动,将技术创造的权利交给了每一个人。
Copilot 的自然语言交互:Copilot Chat 的发布,让开发者能实时提问并获取带有解释的代码,再次简化了编码流程。
Dohmke 是德国人,所以他用德语语音指令的演示证明了 Copilot 支持多语言交流的能力,让全球孩童也能轻松尝试编程。此外,GitHub 新推出的 Copilot Workspace,则让用户可以用自然语言描述任务,AI 自动将其转译为代码并部署,为创意到产品的转化开辟了新径……
双语字幕视频奉上:
以下为演讲全文:
你知道吗,我其实是那种成年后依然热爱玩乐高的成年人之一。
早在 80 年代,我在柏林长大时,我就很喜欢它们,至今我仍然热爱它们。如今,我会在周六下午和我的孩子们一起搭建乐高积木。我对乐高的热爱之所以能持久不衰,原因很简单,那就是乐高是一个几乎零门槛的创意实现工具。
现在,我不仅是一位“乐高爸爸”,我还是 GitHub 的 CEO。
如果你不了解 GitHub,你可以把它想象成编程的家园。那里汇聚了所有的软件开发者,也就是我们社会中的首席“书呆子”(chief nerds)们,他们在一起协作。我们的使命之一就是尽可能地让每位开发者用代码构建大大小小的想法变得简单。
但与乐高不同的是,对大多数人来说,构建软件的过程感觉令人望而生畏。这一切在 2022 年底 ChatGPT 出现后开始发生变化。如今,我们生活在一个智能机器与我们相互理解的世界里,这一切都归功于语言。而这一点将永远改变我们创造软件的方式。
迄今为止,为了创造软件,你必须是一名专业的软件开发者。你必须理解、说出和解释一种高度复杂的,有时甚至是毫无意义的机器语言——我们称之为代码。现代代码对大多数普通人来说仍然像是象形文字。
这里有一个例子。这是 20 世纪 40 年代初的,世界上第一个计算机编程语言,叫做 Plankalkül。它为今天我们使用的现代代码奠定了基础。
正如你所见,就是一堆数字、一些圆圈,还有几个肥硕无比的大括号。这里面并没有太多的人性化元素,对吧?
快进大约 20 年,来到编程语言 COBOL 的时代。COBOL 是在艾森豪威尔时期发明的,但它至今仍是许多大型金融机构的重要语言。华尔街、你的储蓄账户、你的信用卡,如今都依赖于它运行。
我们可以从中看到一些熟悉的词汇,但从结构上讲,我认为这对大多数人来说仍不容易理解。
再快进 30 年,到 1991 年,Python 诞生了,它是人工智能时代最流行的编程语言之一。八十年间,我们从圆圈,到括号,再到英文片段,然而,机器语言仍远未达到人类语言的直观性。
但到了 2020 年 6 月,我们得以提前接触到 OpenAI 的大语言模型,当时称为 GPT-3。那时正值疫情,我们都处于封锁状态。我记得我们是一起在视频通话中,将随机的编程练习输入这个原始模型。然后,就像魔法一样,它在最初几次尝试中就解决了 93% 的问题。
我们意识到自己手中拥有的是非凡之物,所以迅速推出了一款新颖的开发者工具:GitHub Copilot。这是一款能够预测并完成软件开发者代码的人工智能助手。
Copilot 现已成为全球采用最广泛的 AI 开发者工具。编程的时代已经重生。
但这一突破的可能性远不止于这些商业成果,因为驱动 ChatGPT 和 Copilot 的大语言模型是在庞大的人类信息库上进行训练的。它们理解和解释几乎所有的人类语言,所有主要的人类语言。它们似乎能理解我们。我们成功实现了人类语言与机器语言的新融合。借助 Copilot,任何人现在都能通过单一的书面提示,用任何人类语言构建软件。
“告别那些繁琐的括号和圆圈吧!”
这是自软件开发诞生以来,技术上最深刻的突破。
今天,GitHub 上有超过 1 亿开发者。这大约是全世界人口的 1%,这个数字会上下浮动。我认为这个数字即将爆发,我想在接下来的演示中为你展示原因。
一切始于最初的 Copilot,或者我们称之为原始版 Copilot,它实际上只是在编辑器中预测和完成代码,而你可以把编辑器看作是开发者版的 Google Docs。
当你打开一个文档并面对空白页时,会萌生一种感觉:“我到底想做什么?”
我前面提到了乐高,那我们就在网页上搭建一个 3D 乐高积木吧。开发者们通常会怎么做呢?他们会开始敲击键盘,比如我可以在一个 JavaScript 文件中输入代码,编写一个函数来创建乐高积木。
你看到的这段灰色文字,我们称之为“幽灵文本”(ghostText),这些内容通过大语言模型生成。
只需按下 Tab 键并回车,就能得到另一个建议,比如创建一个乐高积木塔。
但我想先直接写一个函数,就叫“绘制乐高积木”,Copilot 会立即提供幽灵文本作为建议。
如果我对这里显示的内容感到满意,我就会更深入地编写和理解代码,我可以直接接受这个建议。开发者们非常喜欢这一点,对吧?因为这样他们就不必自己写十行代码,或是从网上复制粘贴了。他们可以直接在编辑器中正确获取这些内容,保持这种流畅的工作状态。
原始版 Copilot 的问题是,它没有提供给我与之互动的方式。我无法向它提问,也不能指示它做不同的事情。
所以,去年我们推出了一个新功能,Copilot Chat,你可以把它想象成你编辑器中的 ChatGPT。所以我可以在侧边栏打开它,现在我可以告诉它为我创建一个带有 3D 乐高积木的整个网页。
类似于 ChatGPT,它会流式传输响应,不仅只给我一些代码,实际上还会给我一份解释。当它开始编写代码时,你可以看到解释那段代码作用的注释,这段注释使用了一个名为 3JS 的开源库。
于是你就能从这儿看出点门道来:Copilot 可以赋能所有的开发者和那些想学编程的人。
而这一切结束时,还会有一份总结性的注释。我们可以检查那段代码,或将它复制到我的文件中。但我还想向你展示一些其他的东西 —— 你可能已经见过这个小麦克风图标。我们实际上可以用它来与 Copilot 对话,我想用德语询问它,编辑器左侧的那段代码是做什么的。
[Dohmke 讲了几句德语]
然后,Copilot 用德语回应了我答案。
我可以大致翻译一下它的回答:“是的,当然,这段 JavaScript 代码定义了一个名为'Draw Lego brick'的函数。”
你明白了吗?现在,无论是住在柏林、孟买还是里约的六岁小孩,都可以独自探索编程,无需父母在身边,甚至不需要有技术背景。
当然,还需要你们自己去琢磨如何将这一切整合起来,对吧?这里面涉及很多技术性的东西。比方说我有代码需要在机器上迭代,就得弄清楚如何将这个部署到云端,以便与朋友分享。
这就是我现在搭建的乐高积木:
它是一个旋转得很流畅的积木,我实际上可以用鼠标来转动它。呈现了反向凸点和很棒的光影效果,我甚至可以放大和缩小这个积木。现在,我不想再做这些开发工作了,我只想直接将我的创意转化为现实。因此,在舞台上,我将首次向你们展示,我们称之为 Copilot Workspace 的新产品,它正是为此而生。
上面是我的工作区,里面已经没有编辑器了。我只需要输入任务,比方说把我的乐高积木放在这里。接下来,我想将乐高积木扩展成一个乐高屋,按照乐高屋的形状堆叠积木。我也可以用德语或其他语言进行操作,但目前,我们还是坚持用英语。
我可以保存我的任务,然后,Copilot Workspace 会分析我已有的内容,并描述它向我提出的建议。基本上,它可以将我的请求重新构架成一个计划或规范,而一切都用自然语言完成 —— 当然,它使用了一些文件名,但至少你不会看到代码。所有内容都是用英语描述的,我可以进入页面进行编辑,并修改任何一条内容,如果我觉得计划不完全符合我的预期,我还可以往下添加另一个项目。我可以更进一步,生成一个计划,然后 AI 代理会遍历我已有的所有文件,并确定我需要如何修改这些文件,或是确认我是否需要向我的仓库添加文件。
根据它的判断,它想要添加一个创建乐高屋的功能,并在之后调用创建乐高屋。我觉得这看起来不错,让我们实施这个计划。
现在,Copilot 利用我的任务、我的规格说明、我的计划来为我编写代码。两个公共的 Lego.js 文件被排入队列,然后我的代码就已经写好了,我甚至不需要触碰代码 —— 我甚至不需要知道代码是什么!
按下实时预览按钮,积木从天而降,我就得到了我想要的乐高房子。
这一切都是实时的。这就是代码的力量。这就是将我的创造力,通过自然语言流式传输到现实中的力量。
最后,让我谢谢 Copilot。因为你必须一直对人工智能保持友善。
你刚刚看到的,是三年内的三次飞跃。这三次飞跃对计算机编程可及性的进步,比我们过去 100 年所取得的还要多。还记得我说的世界上 1% 的人口是开发者吗?现在你可以看到这将如何改变。目前,Copilot Workspace 可能仍是一个开发者工具,但不久的将来,这类开发者工具将成为主流。因为从现在开始,每个人,无论他们说哪种语言,都将拥有与机器对话的能力。现在,说好人类语言就是你开始计算机编程所需的唯一技能。这将引发全球范围内软件开发者的激增,并重塑我们全球经济的地理格局。
因此,我认为到 2030 年,甚至可能更早,GitHub 上的软件开发者数量将超过十亿。想象一下那个场景:全球 10% 的人口不仅将掌控计算机,但也将能够像骑自行车一样轻松地创造软件。这将催生人类创造力的新文艺复兴,以软件为媒介。现在,在座的任何人此刻都可能灵光一现。一个网站、一个应用程序、一款酷炫的电脑游戏、一首惊艳的歌曲,甚至可能是某种疾病的治愈方法。
例如,去年,在几周的时间里,我开发了一款应用,记录了我一生中乘坐的所有航班。
我知道你在想什么,这真是个超级书呆子才能想到的主意。但没错,我确实喜欢制作这类东西。在人工智能的帮助下,现在我可以在喝完一杯酒之前,用英语或德语完成这样的创作。
不久之后,这里的每个人都能做到这一点。大家可以一起成为书呆子了。
这并不意味着每个人都会成为专业的软件开发者,甚至也不意味着他们应该如此。专业软件开发者的职业不会消失,对于那些设计和维护世界上最大软件系统的人才,需求将始终存在。我们每天都在向越来越复杂的系统中添加数百万行代码,但这些代码几乎只是在维持现有系统的运行。
就像世界上任何基础设施一样,我们需要真正的专家来维护和更新它们。这里的重点不是“会”或“应该”。而是任何人都可以,只因我们拥有的最强大的系统,任何人类语言,现在都与机器语言融合了 —— 并且很快,构建软件将变得如同堆砌乐高积木一样简单和愉快。
采访环节
采访者:
天呐。拥有十亿开发者让 GitHub 听起来更像 YouTube 和 TikTok,而不是它现在的样子。这真是超级令人兴奋。
刚才的演讲非常精彩,但有一个问题我必须得提,这或许是“房间里的大象” —— 是个大家显而易见却未被直接触及的重点。你提到开发者仍然主导一切,也说了我们三年内经历了三次飞跃。那稍微快进一下,你认为人类是否还需要参与其中,还是这些 AI 系统能够自主构建和维护软件?
Thomas Dohmke:
我通常会这么思考和谈论这个问题:我们取“代码领航员”(Copilot)这个名字是有原因的。因为我们需要一个“领航员”(pilot)。我们需要一个有创造力、能决定做什么的“领航员”(pilot)。
这有点像乐高积木。你需要将这个大问题分解成小问题,分解成小的构建模块,为此,你需要一个系统思考者,需要一个人来弄清楚 "我是在构建一个销售点系统吗?""我是在开发一个 iPhone 应用吗?""我是在制作一款炫酷的电脑游戏吗?""我是在打造下一个 Facebook 吗?"…… 这些都是截然不同的系统。
现在,这些构建模块的规模将会增长。今天,它可能只是几行代码,或者整个文件。未来,它可能是一个完整的子系统。所以我肩上的工作会减轻,但我仍然会在最上层负责整个大型系统。正如我前面演讲提到的,我们今天仍在运行 60 年代的 COBOL 系统,所以我们还有很多工作要做。因此,我们将负责在更高层次的抽象上协调这些系统。
演讲原视频链接:https://www.ted.com/talks/thomas_dohmke_with_ai_anyone_can_be_a_coder_now
开发者正在迎接新一轮的技术浪潮变革。由 CSDN 和高端 IT 咨询和教育平台 Boolan 联合主办的 2024 年度「全球软件研发技术大会」秉承干货实料(案例)的内容原则,将于 7 月 4 日-5 日在北京正式举办。大会共设置了 12 个大会主题:大模型智能应用开发、软件开发智能化、AI 与 ML 智能运维、云原生架构……详情👉:http://sdcon.com.cn/