We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode AI-assisted coding with GitHub's COO

AI-assisted coding with GitHub's COO

2025/3/21
logo of podcast Practical AI: Machine Learning, Data Science, LLM

Practical AI: Machine Learning, Data Science, LLM

AI Deep Dive AI Chapters Transcript
People
K
Kyle Daigle
Topics
Kyle Daigle: AI代码辅助工具发展迅速,从简单的代码补全发展到理解开发者意图并协助完成复杂任务,甚至模糊了"开发者"的定义。最好的AI工具是那些帮助我们完成现有工作的工具,而不是那些需要我们改变工作方式才能充分利用的工具。开发者对AI工具的态度存在差异,建议开发者尝试并体验这些工具,即使最终不将其作为主要工具使用。AI辅助编码需要开发者培养两种主要技能:清晰地表达工作流程和问题,以及有效地与AI工具沟通。清晰地描述问题和有效的沟通技能正在成为重要的开发者技能。AI降低了学习编程的门槛,使开发者能够专注于解决问题,并在过程中学习编程知识。AI可以用于自动化应用程序的运维工作,例如自动修复错误和部署代码。为了更好地理解代码库,需要更高层次的抽象来展现代码库的工作方式,而不是关注具体的类和文件。未来的IDE可能会将代码放在后台,更注重提示、思考过程和预览,从而提高开发效率。GitHub Copilot 正在不断发展,从简单的代码补全功能扩展到更强大的功能,例如多模型支持、聊天功能和代理模式。GitHub Copilot 提供了设置来避免生成与公共代码库匹配的代码,以解决许可证和开源生态系统相关的问题。未来,我希望看到能够理解个人信息并提供个性化服务的"环境AI"。 Chris Benson: 就AI辅助编码的快速发展和对开发者工作方式的影响,表达了担忧和兴奋之情,并就如何适应不断变化的环境提出了问题。 Daniel Whitenack: 就AI辅助编码对开发者体验、工作流程和未来发展趋势的影响,提出了相关问题,并与Kyle Daigle就相关话题进行了深入探讨。

Deep Dive

Chapters
This chapter explores the current state of AI-assisted coding, focusing on its evolution from simple code completion to a more sophisticated tool that assists developers in various stages of the software development lifecycle. It emphasizes the importance of AI tools that seamlessly integrate into existing workflows, rather than requiring developers to adapt their methods.
  • AI code assistance has evolved rapidly, improving code completion and enabling more complex tasks.
  • The best AI tools augment existing workflows, rather than requiring developers to adapt.
  • The line between what constitutes a 'developer' is blurring due to AI assistance.

Shownotes Transcript

GitHub首席运营官Kyle Daigle加入主持人讨论AI在软件开发中不断变化的作用、GitHub Copilot的影响以及AI辅助编码的挑战。谈话涵盖了许可问题、伦理考虑以及开发人员如何应对这些复杂性。Kyle还分享了他对环境AI的愿景,该愿景无缝集成到工作流程中,以提高生产力和创新能力,从而塑造开发人员工具的未来。 特色:Kyle Daigle – 领英Chris Benson – 网站、GitHub、领英、XDaniel Whitenack – 网站、GitHub、X 赞助商:Domo——AI和数据产品平台。使用Domo的AI和数据产品增强您的整个数据旅程。

</context> <raw_text>0 欢迎收听Practical AI播客,本播客旨在使人工智能对所有人来说都实用、高效且易于访问。如果您喜欢这个节目,您会喜欢The Change Log。周一发布新闻,周三进行深入的技术访谈,周五则是一个适合您周末休闲的精彩脱口秀节目。您可以在收听播客的任何地方搜索The Change Log找到我们。

感谢Fly.io的合作伙伴。在五分钟或更短的时间内启动您的AI应用程序。请访问Fly.io了解详情。欢迎收听Practical AI播客的另一期节目。我是Daniel Whitenack。我是PredictionGuard的首席执行官,一如既往地,我的联合主持人Chris Benson也加入了我们,他是洛克希德·马丁公司首席AI研究工程师。

你好吗,Chris?很好,Daniel。今天过得怎么样?很好。在我们开始之前,我刚评论说,在漫长的中西部冬季之后,再次看到阳光,我感到情绪上的提升,所以……

今天感觉很好,并且很高兴聊聊AI、代码助手、开发以及所有这些方面的事情,因为我们今天请到了GitHub的首席运营官Kyle Daigle。欢迎,Kyle。

非常感谢。很高兴来到这里。是的,是的。很高兴邀请您。即使在您关于如何看待AI的实用方面的评论中,这也是您的位置。所以我已经感觉到了同类相惜之情。

我已经感觉非常自在。是的,是的。说到这里,我的意思是,您当然,您知道,在代码辅助方面,特别是GitHub Copilot方面,处于许多事情的核心,但是我相信您也看到了很多外部的事情。我想知道您能否从一万英尺的高度,为那些可能没有

没有关注AI代码辅助和开发的所有事情的人们,说说目前的情况,如果你们在2025年3月收听这个节目,AI代码辅助的现状以及人们现在通常如何使用它们?是的,我的意思是……

看到我们在这么短的时间内取得了如此巨大的进步,真是太有趣了,对吧?就在几年前,ChatGPT和GitHub Copilot问世。那时,新奇之处在于它不会让你失望,对吧?对于GitHub Copilot,您知道,您会输入一些代码行,它会用一行、两行或一个方法等来回应。它将完成您的代码。这与,您知道,

我将向ChatGPT提问,而不是向谷歌提问,我可以继续提问。我认为真正锁定这种巨大转变的是找到一种简单、直接且不需要太多信息的 用户体验。

解释,对吧?就像我是一个开发者,我正在编写代码,它就在那里工作,而不是,您知道,需要弄清楚如何使用工具,弄清楚它在我的工作流程中如何工作,并经历数小时的入门培训。

快进几年,对吧?模型不仅在本质上得到了极大的改进,而且我们还找到了越来越多的方法来获得类似的令人愉悦的预期代码辅助用户体验。所以它不仅仅是关于编写代码,在某种程度上,对吧?它不是……

现在根本不是这样。我认为这是我们目前在代码辅助方面所经历的最前沿的东西,它更多的是与几个开发人员朋友坐在一起,说,嘿,我有一个应用程序的想法,但是与其向你的朋友推销它,不如现在向

向你的IDE推销它。代码助手将介入并帮助你完成下一步。所以当我回顾这波浪潮以及它如何从某种程度上来说,你知道,很酷,但回想起来,对吧,有点简单的行为,哇,它真的知道我接下来想写什么。

到像下一级,它一直都是开发人员的样子,那就是我有这个想法,现在我必须向其他人解释它。我们不断寻找方法来增强、改进和加快

开发人员每天都会做的事情。我们现在已经到了一个我认为我们开始模糊边缘的地步,比如,什么是开发人员?嗯,我并不认为我们已经完全到达那里,需要明确一点,但是我认为,你知道,一年前我们还在讨论这个问题,当时的情况是,当然。现在它越来越接近于说,你知道,好吧,

那么,那种独特的需求是什么呢?这仅仅是在一年之内。然后从这段旅程开始大约两年半到三年。所以我认为代码助手类别一直对我来说非常有趣,因为它与我们的工作方式相匹配。它正在寻找增强和改进我们工作方式的方法。

而不是试图教我们完全做一些完全不同的事情,我认为当我们可能从一万英尺放大到四万英尺,当我们观察AI时,我们,

最好的工具是那些仅仅帮助我们完成我们已经在做的事情的工具。在我看来,那些不是最好的工具或难以找到牵引力的工具,往往需要让人类扭曲才能从AI工具中获得最大的效力。因此,因为我们是开发人员,我们只是在我们所知道的事情上进行迭代。这就是,你知道,代码辅助及其在过去一年左右的增长背后的力量,我认为。

我很想知道。我的意思是,这是一个很好的观点,您在那里谈到了开发人员的体验,以及它变化得如此之快。我的意思是,你知道,每个月都会改变现在成为一名开发人员的意义。所以我知道,你知道,我相信我代表很多人说话。我喜欢,我不断地重塑我自己的工作流程的各个部分,因为新的工具变得可用,而我正在做或不做的事情也在不断变化,

这是一种既令人惊奇又美好的体验,考虑到我们多年来的发展历程,但它也相当动荡。当我们停下来,如果我停下来,稍微往后靠一靠,喝杯咖啡,然后思考一下,我有点害怕未来它会变得多么好,以及它的发展方向。您对,你知道,既然您已经明确谈到了开发人员的体验和代码辅助的用户体验,以及它们正在,它们正在迅速发展,有什么想法吗?

什么样的想法,我甚至没有走很远。我只是在谈论短期内接下来的几个月,就像我们如何思考如何调整自己以适应不断变化的状态,即使在我们深入研究工具本身的细节之前?是的,是的。我的意思是。

我认为我们在GitHub推出这些工具后所看到的情况是,我们会与客户交谈,或者我会与开发人员或开源维护者等交谈。他们可能会落在这种连续体上,对吧?这种连续体是,我绝对喜欢每一个AI工具。我将使用每一个工具,我将尝试每一个工具。

然后你会遇到那些说,我永远不会碰这些东西。它们很糟糕,它们会毁掉软件。然后是中间的所有人。所以我认为我倾向于告诉人们的是,你知道,就像在我们职业生涯中一样,我们都经历过这样的时候,一项新技术出现,我觉得

出于某种原因,至少在50%的开发人员心中,他们会想,哦,好吧,那只是一件愚蠢的事情,或者那只是一个玩具,或者其他什么。所以我会说,就我个人而言,天生就是Ruby程序员,JavaScript接管了,我就像,哦,JavaScript,Ruby,你知道,等等。所以随着时间的推移,你会成长,你会意识到,哦,好吧,

我应该真正理解它并尝试一下。它可能不会成为我的新首选工具,但这对我来说并没有帮助,或者说实话,就像行业或我的同行一样,我只是说,我永远不会碰JavaScript。所以我认为你刚才谈到的那种实验很重要,Chris。我看到很多开发人员喜欢尝试新工具或尝试新功能、新库或新模型。

然后回到他们最舒服的东西,他们知道的模型等等。我认为这是最低限度,因为变化会像往常一样发生在无服务器语言到数据库之间。你选对了。如果你不尝试,我个人担心的是,你确实开始落后了,因为你不知道

如何接触到实际上非常出色且非常有用的新工具。你,你知道,有点落后于八球,学习你本可以在学习过程中学习的东西。我会说,你知道,在接下来的几个月里,甚至不仅仅是现在,我确实期望更多的AI功能出现在编辑器之外,因为

因为如果你作为团队或公司的一部分开发软件,而不是作为独立开发人员或小型初创公司,而是一个更大的团队,我们都知道编写代码是工作的重要组成部分,但这并不是你一天中的全部,对吧?你正在审查代码,你正在构建决策记录或架构图,或者你正在

讨论如何推出它。你正在操作一个实时站点,等等。我认为随着AI进入这些领域以填补越来越多的空白,同样,你会想要拥有这些技能

你知道,当AI无法自行弄清楚或LLM无法自行弄清楚时,如何正确地表达你的意思。或者同样,每个开发人员都知道系统是如何工作的。因此,你可以最好地、最好地从中受益。因此,只要你一直在尝试这些东西,即使你回到你的基线,我认为你也会为

更高的生产力做好准备,而且我认为当你能够从你那里拿走更多那些单调的任务时,你会感到更快乐。同样,我认为在接下来的几个月里,甚至不是在未来一年。你认为对于那些开发人员来说,你知道,一些已经直接参与进来的人,他们已经弄清楚了他们的工作流程。也许有些开发人员正在尝试使用这些工具。你认为那些新的

每个人都有他们自己开发他们喜欢使用的工具的肌肉记忆。对于AI辅助编码,需要培养哪些新的肌肉?你在很多用例中看到的最重要的那些。是的,我的意思是,我认为主要有两个。

每个开发人员都有,就像你说的那样,为自己制定了实践和原则。我们都在使用具有linter和CI的系统,这些系统可以阻止你犯错。但是也有一些事情是我喜欢按照这个顺序来做的。它有助于我的大脑处理正在发生的事情。你知道我的意思吗?所以我认为在战术层面,

陈述这些规则、这些提示说明等等,这取决于你使用哪个工具,它的名称不同。但我确实认为这是做的事情,坐下来写出来

好吧,我该如何处理这个项目?即使你作为公司的一部分工作,你知道,我该如何关心它?我一直想在实现前端之前找到后端API的模式。然后我回到后端或你的任何东西。写下来,然后让工具使用它,我认为,这是一个双重的好处,这让我想到了我的第二点。

每个人都在努力掌握的一项重要技能是,它过去被称为提示工程。老实说,我认为这只是在描述一个问题。我们使用了太多的速记,并且我们跳过了细节,就像那个关于产品经理说了什么、工程师做了什么、设计师做了什么的搞笑表情包一样。但这正是我们每天必须对这些工具做的事情。我们去构建一个应用程序,XYZ,突然它返回了,没有任何意义,而且

是的,你会说,哦,这个愚蠢的东西不起作用,你知道,是的,有时它就是不起作用。但实际上坐下来说,好吧,这个应用程序的必做的事情是什么?我希望它如何工作?我希望流程是什么?无论这些是什么,能够清晰地沟通,尤其是在书面形式中,至关重要,对吧?

在这个新时代。我认为这是一项我们某种程度上已经放弃的技能。就像,你知道,当我回想起我作为一名更活跃的开发人员的时代时,你知道,我认为有很多书面沟通,无论是博客文章还是GitHub,一直都是远程的。所以对我们来说,它通常是一个GitHub问题或Campfire(在过去美好的日子里),现在的Slack,只是,你知道,写下你的意思。

这是一项需要掌握的技能,用于说明我希望这个应用程序做什么。我认为这就是为什么当你在Twitter或X或其他地方时,你会看到,你知道,哇,这个例子是如何一击即中的?就像,询问说明。该说明肯定不是构建一个游戏,一个允许我驾驶飞机的多人游戏。就像那不是它,你知道,它更多的是,但是随着描述问题的实践,为你的LLM描述社会问题,

能够定期做到这一点,而且我真的认为这主要是描述问题,因为模型已经变得如此优秀。与过去相比,现在对如何让它为每个模型工作,已经少了很多。这是一项将同时为您服务的技能。

在这些工具中以及与您的同事、您的经理、您的开源朋友和维护者一起,如果您可以做得非常好,那么就会具有凝聚力。对此我很好奇。您是否认为,作为两秒钟的后续行动,对于开发人员来说,您一直在讨论的描述问题的能力以及支持该能力的沟通能力,

我们现在应该将其视为开发人员技能吗?也许这是我们应该开始锻炼的一块肌肉。是的,我认为这是我们……

像最好的团队、最好的公司都考虑过这一点。我认为我们已经有点领导了10倍开发人员的迷因接管,并使沟通不再那么重要。没有哪个主要的应用程序站点或应用程序服务数亿或数千万人,能够沟通正在发生的事情或问题不是开发人员工作的核心。

如果我们随着时间的推移继续发展,你知道,如果AI和LLM将继续编写越来越多的代码,即使它从未达到,你知道,所有代码,无论最终意味着什么。

剩下的就是协作。剩下的就是与你的同事、LLM、代理、设计师、你的老板、你的客户进行协作,无论是什么。所以突然之间,你能够非常出色地编写一个应用程序,简洁地编写、分解和测试,这都很棒。这是一项,这是一项,这是一项很棒的技能。但是人为因素将是,我可以看着你的眼睛。我可以阅读你写的东西,你所说的,你正在寻找的东西。并且,

并以这样一种方式来描述它,以便我可以从所有这些工具中受益。随着更多例行或高度自动化的任务可以由AI工具完成,这将变得非常必要。

朋友们,今天不断变化的AI格局意味着您的数据需求超过大多数公司提供的狭窄应用程序和单一模型解决方案。Domo的AI和数据产品平台是更强大、一体化的数据解决方案。它不仅仅是雄心勃勃的。

它是实用且适应性强的,因此您的企业可以轻松应对这些新挑战。借助Domo,您和您的团队可以将AI和数据转化为创新的用途,从而产生可衡量的影响。他们的一体化平台为您带来值得信赖的AI结果,而无需彻底改造您的整个数据基础设施。安全的AI代理可以有效地连接、准备和自动化您的工作流程。

帮助您和您的团队轻松地获得见解、接收警报并采取行动,方法是使用针对您角色量身定制的引导式应用程序。并且

灵活地选择要使用的AI模型。Domo超越了生产力。它旨在改变您的流程,帮助您做出更明智、更快速的决策,从而推动真正的增长。所有这些都由Domo的信任、灵活性和他们在数据和AI创新方面的多年专业知识提供支持。数据很难。Domo很容易。使用Domo做出更明智的决策,并释放数据的全部潜力。今天访问以下网址了解更多信息

AI.domo.com。再次强调,这是AI.domo.com。Kyle,我前几天一直在想的一件事是,有一代开发人员正在成长,他们除了拥有这种AI辅助的体验之外,没有任何其他经验,这既包括在某种程度上

像教育调试IDE方面,当然也包括使用,你知道,有趣的工具,无论是某种氛围编码工具还是其他东西。我一直在听A16Z播客,他们做了一个,

我认为是他们。我不记得在哪里,就像某个地方他们提到对最新一批Y Combinator公司进行的调查。他们说大约95%的代码是由AI生成的。就以下方面而言,您有什么想法,例如,

这一代程序员真的,这就是对他们来说编程的意义。这对招聘人员来说意味着什么

来自该环境的开发人员,以及那些可能没有机会参与开发很酷的项目或类似项目的人们现在有哪些机会。是的。我的意思是,我回顾了我个人是如何开始编程的,

那是因为我想制作一个电子游戏。我觉得这并不独特,但这其中有一点,就像我喜欢玩电子游戏。但这仍然很酷。没错。我想去制作一个电子游戏。所以在过去,我可能会去Barnes and Noble买,你知道,那本红色的C++书籍,因为如果你想编写电子游戏,你必须学习C++。那本书,我不知道,大概有650页。你知道,那是一本非常大的书。

所以这是学习的一个巨大的直接障碍,因为你会想,我来到这里的原因是解决问题。而且,嗯,

如果我只是学习650页关于C++的内容,我最终可能会制作一个基于文本的电子游戏。你知道我的意思吗?在GitHub,与我们在GitHub Education的团队一起,我能够与他们和那里的团队一起工作,好吧,我们如何在当今时代以一种能够将问题放在首位的方式来处理学习,这本质上就是氛围编码,对吧?我想要世界上的一些东西。我想去建造它。

我认为继续学习的必要部分是解决问题的那一部分。我只是想让它更容易让你能够提出一个问题,一些你想要学习的东西。但是在这个让你到达目的地的过程中,

我们可以向你展示关于为什么这个应用程序以这种方式工作,或者为什么有两个文件,一个用于前端,一个用于后端等等的想法。所以你是在学习的过程中学习。

但仍然专注于最终解决你正在追求的问题。所以我认为这些初创公司或网上的人,甚至是我在周末,我正在编写一个只适合我自己的应用程序。它将永远只有一个用户。我只是想让它被编写出来。我只是想让它工作。

但是如果我们能够帮助人们在学习的过程中学习,我认为我们实际上会创造更多,你知道,工匠,就像我一直描述的那样,你知道,更换我家里的灯开关。就像如果你拥有房子,我们可能都更换过插头或开关。

但是我们绝不会自己去处理断路器。我们可能会把自己电死。所以我们会打电话给电工来做这件事,但我不是电工。我只是知道如何更换灯开关。这就是我为了解决我的问题所需要的。我认为在AI时代学习编码就是这样,你可以继续从这个地方开始,好吧,我只是想要一些东西,这很好。我认为这很好。它使这个想法更容易实现。我希望能够让你到达,你知道,学徒阶段,哦,

好吧,我知道这是如何工作的。我理解变量。新的技术出现了。哦,我想尝试一下,等等。但有可能在某种规模和速度下,我们仍然会永久地依赖,你知道,专业的软件开发人员来运行这些应用程序、构建这些应用程序等等。关于我与一些队友讨论过的那项统计数据,真正让我感兴趣的是,我认为在,呃,

操作应用程序方面存在巨大的机会。我有点不明白为什么还没有人解决这个问题。我的意思是,在GitHub,对吧,我们专注于像,你已经投入生产了,就像,好吧,很好。然后你

使用Sentry和PlanetScale以及其他任何东西,Azure等等。但我真的认为,在我们所有可能的作为开发人员的生活经历中,困扰你的事情是你被呼叫了。你收到一封电子邮件,出现了一个错误,你就像,糟糕,这是什么东西?

我觉得这是氛围编码继续发展的另一个地方,一旦你运行了一个应用程序,并且拥有数千、数万或数十万用户,我并不在团队中,哦,好吧,那就是你必须请来专业人士的时候。他们会以正确的方式重写它。我真的认为仍然有空间可以,好吧,出现了一个错误。AI看到了它是什么。它解决了它。它编写了一个测试。测试通过了。它将其部署到Canary或小型版本。你只会收到一条短信,上面写着,我们已经修复了它。

我觉得这是这个,你知道,编写、学习如何编写和部署这些应用程序的时代的下一步,而不是部署它们,然后说,哦,现在我需要一个真正的,你知道,专业人士来帮助我。这太有道理了。你实际上看到有人在那里做一些这样的事情吗?

这比仅仅,你知道,因为我们倾向于从编写代码的角度来思考AI。操作应用程序非常有意义。谁在做?我认为这里的问题是,这将需要我们所有人一起努力。是的。

所以,我的意思是,当我加入GitHub时,哦,我的上帝,大约12年前,就像我加入是为了在生态系统中从事API和webhook的工作,以及你如何将所有东西与GitHub连接起来。而且我真的很喜欢,那就是我的热情所在。它在,你知道,中心生态系统中。

你知道,比如,我们如何将所有东西连接起来?所以当我看到,你知道,该行业对MCP有多么兴奋,以及能够将工具连接在一起,我真的很希望这波热潮能够持续下去。

推动一些有价值的东西,那就是如果我可以将我的错误跟踪器、我的数据库、我的两个云服务、我的电子邮件提供商等等的上下文结合在一起,那么我相信工具可以一起工作来解决这些问题。

不幸的是,现在,每个工具都在试图解决它能够看到的问题。我认为这并没有什么价值,对吧?作为最终消费者,我不希望使用三个AI工具来解决生产中的错误。我想要一个。

你知道,我希望一个工具能做到这一点,或者至少我希望它们在未来的某个神奇状态下,代理能够一起工作,等等。然后,你知道,最终也可能发生这种情况。但我还没有看到一个工具正在解决这个问题,我认为这是因为在这个当前的,你知道,变化非常迅速的AI工具状态下,这样一个工具将具有的相互依赖性问题。

是的,是的,我认为这与我对所有这些东西可以多么容易构建的担忧有些相关。

调试方面的负担,对吧,可能,可能正在增长,而且你拥有所有这些东西。然后我想这更多的是关于。是的,更多的是关于决策支持,就根据这些压倒性的信息做出好的决策而言,因为你构建了如此多的东西。

而且你可能对这些东西的相互关联性没有很好的直觉,或者说,哦,

哦,这个函数存在,对吧?我不知道这个函数存在,对吧?我从未听说过这个函数名。我对此没有任何上下文。所以,你知道,从工具的角度来看,需要什么才能真正获得围绕这种决策支持(或者你想称之为开发人员在其使用的工具中的任何内容)的适当上下文?

我认为,你知道,对于现代软件开发的大部分历史,我觉得大多数人都使用相对较高级别的语言工作。对。最终有很多抽象。我们大多数人并没有使用C语言,甚至更低级的语言。

我认为,为了帮助我们理解我们的代码库或多个代码库和多个系统,对吧?例如在GitHub,作为一名从事webhook工作的开发人员,我不可能理解Git系统最终将如何为我工作。所以对我来说,我认为我正在尝试

弄清楚的是,我们如何才能获得更多关于代码库如何工作的更高级别的抽象。它可能需要以一种人类可以理解其工作方式的方式呈现,而不是像

你知道,这个类,这个文件,这个等等,我不需要理解这些。我需要知道webhook系统有问题,或者其他部分不起作用,或者这里有一个错误,我们在那里处理图像,然后我可以点击深入,再深入一点。因为通常当你遇到错误时,即使你理解系统,你的目标也是找出

什么可以忽略。你知道,就像,好吧,这不是这些东西。它一定在这里。而且我认为,类似于人类擅长最终向LLM描述问题,我认为LLM必须帮助我们将抽象提升到一个级别,在那里,你知道,

我会在白板上画图,然后让我双击并更深入地了解最终发生了什么。是的,是的,这是一个很好的观点。它让我想起了微服务鼎盛时期,你知道,一切都扩展到了……

当时我在一家小公司工作,我不知道我们有多少微服务。我们设置了警报,对吧?但是警报会发出,而所有东西都依赖于其他所有东西。所以所有警报都会发出。要么没有警报发出,要么所有警报都发出。然后你会想,好吧,我放弃了。我甚至在哪里……

介入这里。是的,这似乎是一个巨大的机会。我想就……而言,我想稍后具体谈谈Copilot,但只是从IDE的角度以及更普遍的层面来看,

你如何看待IDE随着时间的推移而变化?你认为一年半或两年后它是否仍然可以识别,或者对某些人来说是否会变得完全陌生?我希望,老实说,在接下来的六个月内,一家

初创公司仅仅因为这些事情的运作方式,就可以向我们展示一种在某些方面向后兼容的未来状态。我的意思是,GitHub拥有工作区。我们演示了Spark。所有这些都是代码正在进入后台,向我展示提示、想法以及最终构建内容的预览,并且

但现在在IDE中,你提到的所有IDE,以及通常所有不是像Lovable、Bolt、vZero等IDE到应用程序工具的IDE,它们都……

仍然以代码为前导。我认为现在为了吸引受众,这是必要的。否则,它可能会被你推到一边,就像一个有趣的玩具。它并不是我作为专业开发人员将要使用的工具。但我认为将来,我会使用应用程序或,你知道,网络应用程序、实际的iOS应用程序或任何东西。每次我编写代码时,就像我编写代码一样,我编写一个测试,然后我将去触摸应用程序。

最后一步通常是我找出自己是否正确的地方。当出现问题时,为什么我必须不断地在结果、我试图实际构建的东西和代码之间来回切换?所以现在有一些工具,对吧,它们向我展示了预览。当我调整它时,代码正在改变。

它得到了对我来说在这个AI时代最有趣(也许不是最有趣,但其中一个)的问题,那就是魔镜问题。我如何持续更改表示,并使代码、文本、自述文件或规范与我在表示中所做的操作相匹配?所以,是的,移动像素很容易,对吧?我将更改此位置或其他内容。但是如果我要求它做完全不同的事情呢?对。

对吧?我该如何确保代码始终与之匹配?我认为有一些非常有趣的尝试。但是如果和当模型、技术规范等变得更好时,我认为IDE将广泛地成为提示、预览、思考。所以我可以纠正和调整。然后可能还有某种方式让我,你知道,点击应用程序的一部分,而不是让它变成蓝色,这是我们都看到的演示,而是说,不,不,我希望这成为一个动态视图,向我展示这个完全不同的东西,你知道,基本上是另一个控件或另一个视图、另一个应用程序或其他什么,它会立即编写代码并向我展示它,然后我认为我们会比我们现在想象的更快,因为相反,我们正在通过提示进行操作,你知道,它只会变成好的,好吧,我将说服AI去做这件事,但是

感觉我们仍然差几步之遥,因为有一些实际的难题需要解决,才能让你非常非常轻松地来回切换,因为大多数公司最终仍然通过CI、构建系统、部署等方式使用代码工作。所以我们要确保所有内容都与代码库匹配,而不仅仅是与我们试图构建的应用程序或视觉表示匹配。

所以,正如我们一直在讨论代码辅助和事情的发展方向一样,我想暂时更具体一些,因为我们把你带来了这里。当然。具体谈谈GitHub Copilot,也许以此作为起点

谈谈GitHub Copilot的当前状态,用户体验现在是什么样的,以及未来和后天会是什么样子,以及你如何看待它会影响IDE、技术的采用,以及整个事情的未来发展,并从这里开始走向未来。

关于该特定项目。是的,是的,当然。我的意思是,你知道,我觉得大多数人都熟悉Copilot 1.0,我们称之为,对吧?就像每个人都一样,好吧,所以它执行代码补全,很酷。而且,你知道,在过去的六个月左右,

我们从是的,它执行代码补全,变成了,你知道,现在你可以选择使用各种模型,通常在一天之内,如果不是同一天发布的话。有聊天,你知道,能够提出这些问题。现在在VS Code Insiders中可以使用代理模式,它允许你拥有这样的体验,

描述一个问题,观察它完成工作,要求它做其他事情,跨多个文件工作,你的整个存储库的上下文,而不仅仅是打开的文件,并对你的应用程序进行这些更广泛的更改,仍然在IDE中。作为Copilot系列整体的一部分,我们继续进行这些探索,例如Workspace和Spark,我们正在讨论,就像我们刚才谈论的那样,

对我来说,计划好我想构建的内容,然后让Copilot作为代理去弄清楚最终构建该应用程序需要采取的所有步骤,这意味着什么,这些步骤需要跨多个文件、多个存储库进行。所以目标,而不是仅仅说,给我一些代码行或给我一个完整的方法,而是现在……

从你试图解决什么问题开始?我们的大多数开发人员都在主要的开源项目或大公司工作,或者他们正在学习等等。所以我们希望能够让大家从一个问题出发。这可能是聊天中的提示。这可能是一个已经打开的GitHub问题。这可能是一个已经打开的拉取请求,你认为它缺少一部分。我们希望你能够

说明你正在寻找什么,你知道,然后让Copilot从那里开始。所以我们分享了一点关于未来路径的预览,你知道,我们都遇到过错误,我们把它们放在我们的问题跟踪器中,这并不有趣。解决它或解决它将需要相当长的时间,你知道,或者

重新提出问题,就像,为什么不把它分配给Copilot,让它像开发人员一样工作,你知道,尝试一下,运行测试,测试失败,评论他们认为自己做错了什么,继续进行,然后请求人工审查。这是我们正在尝试模拟的体验的一部分。

你团队中的任何人,而不是把它当作一个神奇的工具,你知道,它总是会得到完美的结果。相反,就像你向另一个开发人员朋友解释一样,你可以进入并帮助Copilot理解,或者只是说,是的,完全正确。只需更改这两件事,Copilot就会做到这一点,并最终部署。所以当我们查看代码创建过程时,这通常发生在IDE中,我认为这是很大一部分。

对我来说,作为一名开发人员,更令人兴奋的部分是成为一名开发人员的其他所有部分。就像我说的那样,你知道,当我编写或审查代码时,

我是一个人。所以我可能不记得某些东西的确切方法签名,但这似乎不是最好的方法。因此,能够在这些时刻与Copilot一起工作,或者让Copilot告诉我,嘿,Kyle,根据你如何工作,我知道你如何工作,这不太对。所以它可以向我展示它,让我接受更改或操作和CI。为什么不让它工作?

修复出现的故障,或者让我通过与AI对话来定义我的操作工作流程,而不是必须自己构建它。所以,你知道,我认为Copilot在未来一年中真正的魔力是,你

我们如何在创建代码以及审查、构建、测试和部署代码的过程中找到时刻,并让Copilot以更像代理的方式工作,你知道,拥有多个可以一起工作并使用上下文的Copilot代理,不仅是你的代码,还有你组织中的所有代码,还有你使用的工具。如果Copilot可以使用MCP或Copilot扩展程序与它们联系并获取信息,那么

然后突然它可以接管你可能根本不想做的任务,老实说,你知道,不太可能是那些有趣的、新颖的、我围绕这些任务建立我的业务的任务。它会帮助你做所有这些事情,但至少,让我们让它消除我认为每个开发人员在其积压工作中都拥有的那种枯燥乏味的工作,但它已经在那里待了两年、三年或任何时间了,呃,手工制作的,呃,现在。所以Copilot,你知道,真的,真的,呃,

试图让你通过IDE中,特别是VS Code中的这些新体验,从问题到应用程序或从问题到修复。但现在在更多IDE中,就像我们宣布Xcode现在有聊天一样。许多其他编辑器也继续进行聊天。因此,如果你处于这些环境中,你仍然可以使用Copilot的功能。

然后在github.com中,你会看到所有这些新的体验即将到来,例如代码审查,能够使用代理根据问题为你构建实际解决方案,并在他们工作的SDLC过程中修复几乎其他80%的开发时间,而不是只关注编辑器工作流程。

你认为,我意识到这可能是一个复杂的问题,但我经常被问到这个问题。所以我认为你可能是最适合回答这个问题的人,或者至少有自己的看法。但我经常收到很多关于这个问题的问题。

这方面,即使在你刚才描述的,呃,这里有一个问题,生成一个修复程序,可以做到这一点的代理,尤其是在开源社区和代码生成方面。从你的角度来看,这如何影响开源的许可和生态系统?是的,我的意思是,你知道,

对于Copilot及其正在做的事情,最终,生成的代码,无论是为你公司生成的还是为开源项目生成的,Copilot中都有工具,你可以基本上说,嘿,如果这与任何公共代码匹配,请不要给我匹配。然后它就不会。它不会与它可以访问的公共代码库中的任何内容匹配。所以Copilot

总的来说,对于那些最担心,你知道,这段代码来自哪里?它是否正在使用代码并生成看起来像我不希望匹配的其他公共存储库的代码?它可以通过设置设置来做到这一点。对于我们的一些Copilot的

倾斜,我们要求这样做。为了保护自己,如果你担心,是的,这段代码来自哪里?许可证是什么等等,你必须打开它。我认为随着我们越来越向前发展,并且随着我们查看市场上的所有工具,

作为开发人员,我认为我们都可以直觉地知道,编写完全相同的事物只有这么多新颖的方法。所以你有时会听到,或者我应该说我会有时听到,特别是来自开源开发人员,说,哦,Copilot不会为我编写这个。为什么它不给我答案?答案是因为你试图构建的循环足够复杂,以至于它会触发某些事情

让我们寻找匹配项。因为我们已经阻止了它,因为你已经打开了它或者公司已经打开了它,所以它不会给你返回结果。所以它真的取决于公司或用户的个人偏好,他们是否希望将公共匹配返回给你。但总的来说,特别是当我们进入代理模式并获得创建能力时

接近整个应用程序,你知道,或者至少是一组非常复杂的文件。你知道,Copilot将迭代并迭代,并给你一些东西,再次,如果你关闭了它,它不会与公共集合匹配,但最终,你知道,尝试为你解决这个问题。其他每个工具都有不同的义务,例如这个,或者它是否会使用建议等等。但我认为最终现在,

我们的目标是真正确保每个人都能使用这个工具。他们可以选择,你知道,

他们想如何使用它以及他们想要什么样的回复和建议。这就是为什么我们将Copilot免费提供给学生和非常流行的开源项目的维护者。我们正在尝试寻找更多方法,确保每个人都能使用该工具(如果他们想使用的话)。现在,Copilot免费,基本上每个人都可以使用至少一部分Copilot。

然后让他们自己决定在继续走这条AI编码未来的道路时,他们最舒服的是什么。当我们开始结束时,我们经常会问客人,你知道,我们所说的未来问题,现在正在前进。但我们已经涵盖了如此广泛的内容。我会问你这个问题。我会说,当你展望未来,并且你正在,你知道,我们已经涵盖了从

代码生产力到开发人员体验,再到GitHub Copilot产品本身,以及许多相关内容。

你想去哪里就去哪里。当你结束一天的工作,度过忙碌的一天,喝一杯葡萄酒,或者晚上上床睡觉时,你的大脑处于开放模式,你知道,你正在创造性地思考,你的大脑会去哪里,所有这些对我们来说会去哪里,以及什么样的东西?

接下来可能会出现我们还没有讨论过的事情?对于这个问题,你想看到哪些有抱负的东西即将到来?让我们进入你大脑的最后一个问题。是的,当然。所以,你知道,如果我是一个好的企业公民,我会向你推销GitHub的东西,但这并不是诚实的答案。我们都是某种意义上的开发人员。所以人们理解。

我认为真正能够理解我并可以访问我的信息和我的选择的环境AI令人惊叹。

我现在最感兴趣的事情。你知道,我认为我们已经看到了LLM的强大功能,而且我认为我们还没有真正挖掘出它的大部分潜力。我们仍然广泛地说是在聊天模型中,这对我来说非常无聊。你知道,我明白了,为什么是这样。但是,我真的很认为下一步将更多地关注如果

如果你拥有我所有的电子邮件、我的日历、我目前正在共享的所有内容,那可能是我的亚马逊购买记录。那可能是,你知道,访问我的门铃摄像头,你看到我出门时穿的衣服等等。所有这些体验中,我们都会去谷歌,然后说,你知道,

今天天气怎么样?或者我们问我们的助手,比如,你知道,家里的工具或其他什么,或者更复杂的东西,比如,我上次听实用AI播客是什么时候?它是关于什么的?因为我要参加播客录制,我想提醒他们Matt Collier是我的朋友,他在sidekick方面做得很好,等等。

这种环境AI或环境智能,我们不会调用助手,它只是在需要时告诉我需要知道的内容,因为它拥有关于我的所有数据。

我想要它。我非常非常想要它。我认为有一些非常有趣的尝试。有一个Rewind AI是Mac应用程序,他们转向了这个Limitless工具,它就像一个可穿戴设备加上所有具有相同想法的应用程序。有一些,我不会说出名字,但对这个东西进行了模因化版本。这并不是我真正想说的。我的意思是真正能够完成我的想法的能力,因为

你拥有我需要的所有上下文,而我不必设置55个集成或IFTT或Zapier来将我的所有数据移动到一个地方。这样GPT-4-5就可以回答它或其他什么。你知道我的意思吗?我认为我们并没有那么远。我认为

我发现令人难以置信的是,iOS和Apple智能一直在尝试提出他们的下一个目标。但我实际上有一些希望他们可能会解决这个问题,因为他们还没有发布他们的解决方案,你知道,并且公开谈论它可能比他们想象的要花更长时间。最大的差距不是LLM。它不是连接所有数据。它是隐私。

我不希望所有这些数据都存储在一个任意初创公司的云中或其他地方,你知道,这样做。尽管我们所有的笔记本电脑都非常强大,但仍然有一些限制,你知道,关于它可以做多少事情,它有多少数据,以及它可以运行的模型等等。我认为能够获取所有信息的人,以一种我个人从隐私角度感到舒适的方式去做,对我自己和任何……

本质上,你知道,像将数据发送到这个工具的人一样,你知道,例如,如果我现在正在录制我的屏幕,能够拥有所有这些信息并真正帮助我的日常生活,你知道,提醒我即将发生的事情并帮助我做这些事情,而无需像嘿,Siri或嘿,Alexa这样的拟人化情况,只是

这就是我晚上躺在床上思考的事情,以及如何解决隐私问题,因为我认为这将是我们以一种既真正强大又我认为对我们所有人都有益且安全的方式做到这一点所必需的,而不是通过让所有这些信息以我们不希望的方式泄露到野外而意外地陷入更糟糕的反乌托邦社会。

这是一个很好的结束方式,Kyle。我也对类似的事情抱有希望。我们再次在相同的波长上结束。非常感谢你的加入。非常感谢你邀请我。

好的,这就是我们本周的节目。如果你还没有查看我们的ChangeLog时事通讯,请访问changelog.com/news。在那里你会发现29个理由,是的,29个理由,为什么你应该订阅。

我会告诉你第17个理由,你实际上可能会开始期待星期一。听起来好像有人得了星期一的病。changelog.com/news上还有28个理由在等着你。再次感谢我们在Fly.io的合作伙伴、Breakmaster Cylinder的节拍以及你的收听。现在就到这里,但我们下次再聊。♪