ShowMeBug李亚飞:IDE与AI自动编程技术将增强超级程序员
5329
2024-04-02 22:10
文章摘要:在AI自动编程软件Devin第一时间官宣出来后,我邀请了三位程序员代表直播讨论:ShowMeBug创始人&CEO / 全栈工程师/连续创业者李亚飞;联易融副总裁沈旸;技术领导力黄哲铿 Mr.K先生。


在AI自动编程软件Devin第一时间官宣出来后,我邀请了三位程序员代表直播讨论:ShowMeBug创始人&CEO / 全栈工程师/连续创业者李亚飞;联易融副总裁沈旸;技术领导力黄哲铿 Mr.K先生。

特别的是,在这次连麦讨论中,我惊奇发现,亚飞和团队其实早在去年已经做出相关探索,并研发出了1024Code这款产品。

如果按照时间线,1024Code几乎可以称为中国的Devin。在和亚飞的团队深度交流时,他们认为1024Code的产品功能和内测效果可以称得上国内“第一个AI自动编程软件”。当然1024Code的技术逻辑和产品思路与Devin又有所不同,后文中会做详细论述。

沈旸在讨论中,也表达了他的观点:

1、Devin的发布是比较典型的AI在编程领域的突破。AI Agent跟过去的AI相比,与外界有一定互动能力。比如ChatGPT一开始就有聊天的功能;但类比为人,其实没有眼睛、手和脚,因此“不能干别的”。Devin现在可以跟很多工具做链接,它会自动找哪些工具比较好用,主动阅读博客,访问网站,通过不停迭代你的意图,把编程实现。

2、整个AI最先落地的就是AI编程领域。它不需要和物理世界关联,编程领域中有Github以及后面很多运行程序,从而支持形成了闭环。从request提需求开始,到需求解决,代码合并,到最后运行,形成一个闭环。

其实,沈旸曾经找到李亚飞,提出过一个诉求——实现Web IDE(我们会在下文分析“IDE”),很多程序员以前是在本地写程序、做文档,这里包含了编程的几个关键步骤:

第一步,也许是几个人之间聊天,在思想上产生碰撞。对产品产生诉求。

第二步,产品经理画出原型图,大家确认,团队开发。整个过程都是线下的,虽然有数字化,但可能是断点的,原始资料也可能会丢失。

基于在线编程,比如在线设计软件、Figma等工具结合起来以后,就从需求到运行,实现了闭环。这样,AI就能培养出一个很好的工具体系。

无论是Web1.0还是3.0,最重要的就是积累足够的数据,以培训AI。

Web/云端IDE其实就是AI编程,或者说带领AI工程师打开第一步。

黄哲铿(Mr. K)的观点是:

Kevin比较震撼地在于实现了工程闭环。就像是做软件开发,首先要定义问题,确认需求,反复交互。Devin先定义问题,确认好之后,会尝试联网读取文档,学习编程语言,用工程的方法调试和开发。整个过程复刻日常工作的流程,实现了AIGC。

如果有足够的法律法规监管,确实能够实现编程领域的AI智能体。

Devin的优点是没有情绪,不会犯低级错误。缺点是展现出偏工程化的思维,对产品的哲学思考欠缺,达不到产品思维。接下来,也许会产生AI产品经理这样能够解决产品哲学思考的智能体。

下文,我把李亚飞的思路,做一个完整的梳理,希望给到更多读者启发。也希望你有任何不同意见,可以与我探讨。

1、从“工程效能”到对Devin的辩证思考

研发效能的提升以及相关技术的定制,是我们在2019年之后的工作重点。我的主要工作就是提升“工程效能”这件事。工程效能的最高境界是全自动编程,评估好人才的能力,我们从这个维度去做了一些工作。

AI跟程序员领域怎么结合出一个新的应用?或者说如何探索AI对于开发架构的改变,我把AI编程领域的创新理解为L5级别的全自动编程探索。

海外软件Devin,是一个十多个人的团队,他们发布了号称全球首款AI软件工程师。

我认为这就是趋向L5级别的创新应用。去年,ShowMeBug探索出关于编程能力的全新的底层逻辑。我们制作出了1024Code这款产品。专门成立了一个小分队研究自动写代码的技术和体系。

1024Code是采用 1024PaaS(全栈自研的云端编程环境)为核心,通用大模型为基座,花费了十多个月构建一套自主决策链AI Agent(目前称为AI导师),提供了编程环境感知,代码编辑,Shell、Console的自主阅读,运行与自主Debug。简单来说,就是将AI Agent安装了手与脚,让其自主完成需求分析到编码调试的过程。

微信图片_20240402215120.png【国内也有Devin了!一个来自国内创业者 L5 自主编程能力的探索-哔哩哔哩】 https://b23.tv/neb8Aoq

 

在这个工作体系之外,我看到的方向是自研一套云上最好用的IDE。因为你掌握了核心技术,后面才能跑得更快、更远。实际上,融资几千万之后,我们一直在规划这个核心引擎。

参考自动驾驶的理解,这里分析一下,L1到L5之间在自动编程上的差异是什么:

L1是取代一定搜索能力的AI搜索。智能化搜索体现为信息整合检索的能力,尚不能支持对人类的启发。

L2是超越20%-30%人类的思考能力,对人类有一定的启发作用。能够用在助理和自动化领域。

L3能够替代50%的人类工作,自动化完成任务。

L4能够完成90%的人类工作。

L5则100%超越人类。

从L3开始,AI能够替代50%人类的工作,用自动化的方式完成任务。L3以上级别的自动化程度就可以解放出人类,人类就可以干别的工作了。

所以也会有“程序员不存在”这个话题的讨论。

2、AI自动编程要看谁跑得快

Devin在替代工程师而不是产品经理的事情上,能够做得很好。软件领域的特殊性会使之在AI里面能够发挥巨大的作用。软件工程是客观的,这意味着每一步的探索都有正确答案,像是做数学题。软件中的每一个步骤,可以一步步验证是对还是错。

Devin的应用过程中,跑程序出现错误之后,通过找到错误的编码,就能够解决掉问题。AI的能力和ChatGPT在本质上是概率的动作。在AI编程领域的成功,每一步都相当于做一次Commit,把非常难的步骤分成多步骤,每一步骤都可以验证对不对,相比其他工程更为清晰明了。

Devin在获取工具的能力上,包括连接海外的搜索应用,其效果非常好。对工具的检索有一个非常好的体系和列表。借助工具做想做的事,每一步都能够检验。对于产品经理来说,产品从实践到落地,以及涉及的运营环节,判断产品好坏,需要进行大量灰度测试。软件工程师是目前能够看到的AI进展最快的一个应用。

Devin最大的缺点在于他还是一个预览版本。一个公司的CTO朋友曾经在第一时间觉得Devin是1024Code的翻版。Devin的交互思路体系和我们很接近。今天我们对AI编码的畅想肯定能够实现,关键是什么时候实现。

现在要看谁跑得快?快步向前,抓住机遇。

3、给自动化编程软件装上“手”与“脚”

如果硬说Devin的第二个缺点,现在AI大模型底座能力还不够强,Devin SWE-bench 测试(解决指定2000个问题) 13% 的通过指标,还是偏弱。

1024Code也能做到这个程度,但我们认为这不是一个高标准,所以去年1024Code做出来后,没好意思去做专门的发布。




 此外,我还发现一个核心的问题,不管你(Devin这些应用层Agent)怎么努力,其实只是在大模型之上加入了一套特别复杂的决策链(类似现在最流行的ReAct决策链)。但最终可能会发现这些都是无用功,等到后面大模型升级,从普通人变成聪明人,这些将不再需求。 

所以更关键的是给AI软件装上手和脚。什么是手和脚?AI软件需要闭环,且最容易闭环,而闭环的核心就是程序员经常工作用的那套编程环境IDE,或者在AI编程领域,叫做CDE(云端编程环境)的东西。 CDE的发展趋势,最后就是云端编程+AI的融合体,它里面会很简单,没有那么多功能概念,只有测试、发布两三个步骤。 

1024Code现在是公测邀请阶段,虽然是邀请制(有邀请码才能注册),但我们也没限制的那么死。只要是有一定经验的软件工程师去申请获取邀请码我们就会给,然后就可以去体验功能。 

更多是让大家感受AI自主编程的能力,1024Code的目标是设计成 L5 级别自主编程能力的 AI 编程软件,在实现里,也是有一套决策链,会去分析项目/程序代码的语义语法结构,压缩信息(一些大模型的上下文是有限的),决策修改或者添加哪些文件,然后再进入到具体的更新代码动作里。  

传统的大模型助手模型下,生成代码,需要你自己找地方写入,比较费劲。1024Code基于CDE 可以做到自主去定位修改文件,并在CDE编辑器内完成修改。

这里面的决策链还是比较复杂的,但实际上我们已经给大模型加上了手和脚,比起本地IDE更有竞争力。

微信图片_20240402215145.jpg



4、“块编辑”与“CDE”技术的发展前景

我的思考逻辑是——一定会诞生一种人类与AI更友好的交互方式。比如1024Code,我们更认为人类要审批,人类可以直接改代码,AI也可以改它自己的代码。

程序员当下培养成本是非常高的,复杂而且稀缺。当AI进入这个行业,程序员会变成一个普通职业,让这个职业在未来成为一个供给平衡的市场。这是1024Code和ShowMeBug能够帮助行业创造的一种新的交互形式。程序员的精力也会被释放出来。

让4天的工作进入到3天的工作制甚至继续压缩。我的逻辑是程序员行业要像美国社会一样,人均生产力提高几倍。推动整个社会经济的发展。

对于AI自动编程,你的手和脚装齐,等待大模型能力不断变强,对着IT体系不断增强,最终形成一个自主化高效的编程体系。

如果想让IDE落地,需要再补充一条——兼容现有环境。海外现在流行一个新的概念——CDE。也就是云端开发环境这一概念。并且能够实现兼容到你的私有化IT环境中部署。Gartner预测,到2026年,60%的云工作开发将使用CDE构建和部署。

先讲一下什么是云端IDE。IDE是指本地集成开发环境,也就是包括开发人员所需要的、与编写代码相关联的一系列环境及配置。而云端IDE即是简单放在浏览器上,就可以直接运行的IDE环境。但云端IDE技术实现上有很多差异,针对场景不同,功能会有取舍考量。

随着时间的推移,大家也逐步意识到,只是把IDE搬到云端并不会被用户简单接受,而是需要全新思考与设计。22年底,随着Gitpod拿到2500万美元的A轮融资,整个市场进入了全新的元年,重新把云端IDE定义为 CDE(Cloud Development Environment),我认为这个词总结得特别好,所以以下我们将原本用「云端IDE」但更合适用 「CDE」 的地方,统称为CDE。

说到 CDE,我们必须从海外的市场开始讲起。

第一个值得讲的就是 Coder(https://coder.com/)。

Coder是一个先从开源出发(code-server),允许开发者用 VSCode 连接到任意的远程服务器,进而演化出来完整的CDE(coder)环境的发展模式。也是开发者生态经典的发育模式。其核心定位是为开发者提供云端的资源配置管理、复用,开发者仍然可以复用本地开发环境。目标画像是在实际开发工作场景的开发者。

PV 4.9万,UV:2.4万。

值得讲一下,他们三个联创都特别年轻,现在才20出头,但已经创业5年了。在22年宣布拿到了3000万美元。

第二个是现在 CDE 市场的新秀产品 Gitpod。

能感受到他们更加懂开发者,Gitpod 的定位也是为开发者提供生产力工具,替代本地开发。目前增长比较明显,很多开源项目的托管平台选择都有他们的影子。目标画像:在实际开发工作场景的开发者。

PV:67.3万,UV:15万。

目前融资情况:Github 的创始人领投了最新一轮2500万美元。

AI编程自动化这项技术,你要把自主技术核心掌握在自己的手里。1024Code提倡一个概念——块编辑。也就是一开始,就要决定是谁在写,但其实其他体系是做不到的,包括Devin。我的思考是要更闭环。

在我们做ShowMebug的时候,也积累了这项技术。并且花了两年多的时间。这是一个非常核心能够形成壁垒的技术。

CDE的应用场景上,本质是一家技术驱动的公司。技术应用在什么样的地方,是需要你自己进行探索和判定的。我们当时从能力测评这个角度出发,面试验证程序员能力这个场景开始。这是因为我们判断,这个地方离商业化最近。

第二个场景是编程教育。海外公司Replit,目前有2000万活跃用户,活跃率超过50%,价值12亿美元。

第三个领域就是AI自动编程。中国有上千万正规程序员。加上非正规军达到2000万人群体。节省一半人力,就能达到一千万市场。其实,微软40年来,就是抓住了程序员的群体,微软之前也推过.net但都被历史淘汰了。

现在有了AI加持之后,会让创业公司拥有创新力。但是挑战就在于早期对于产品的要求需要突破一个临界值。这方面,商业化挑战比较大。

AI编程的挑战还在于要结合更多领域,仅仅有Devin不够。本质需求上的驱动不是来自于程序本身,而是来自于产品经理,来自于客户,来自于项目,需要形成一个更完整的闭环。

未来把项目中间的对话、文档,甚至是大家的聊天记录,所有事物形成非结构化的数据,保留在对话框之中。如何调用一个开源的工具,节省下来99%的代码,这里的能力只有靠云上的版本能够体现出来。如果是私有部署,所有的部署,要能够让AI编程工具能够理解公司的体系。

5、软件工程师生存环境的变化,开发左移

AI理解数字世界或者软件的过程要靠RPA或者API。但在API方面,国内软件发展的进程并不太友好。国内产品在标准接口和标准文档上有缺陷。国内很难顺利地把两个系统对接起来。按理说简单粗糙的策划工作应该是AI完成,现在AI在做一些比较高级的工作,人类再完成前后较为低级的体力活。

1024Code中,有比较多的手自一体的设计理念,逻辑是把人放在一个比较高的位置上,AI把活先干了,人点审批。

程序员不管做多久,基本上都是跟业务打交道比较多。未来程序员演变的方向就是把业务语言和程序更好地结合起来。

程序员的工作目前分为三类:一类是比较低水平的重复劳动,大部分是刚入行的程序员、初级程序员或者学生群体。第二类是被动接受需求,实现功能交付。一些工业化软件开发和企业之中的程序员属于这一类。第三类是技术和商业融合,创造出有价值产品的程序员。十几个人的团队,能够做出一个颠覆性的产品。

AI出来之后,可能会淘汰第一类低水平重复劳动的程序员;部分取代第二波被动接受需求的程序员,实现一些简单或者复杂功能的程序员;并成为第三类程序员的助手。

真正懂技术又懂商业和业务,这样的程序员在AI的帮助下,能够很快实现他们商业上的构想,低成本去验证他们商业上的构想,这是对于程序员群体的影响。

要拥抱AI,对于AI来说,打不过就加入。

AI编程工具已经实现了帮助程序员的“开发左移”,意思是在整个开发链里面,程序员会越来越向价值链的上游移动,去理解业务,通过AI实现自己的构想,这也是所谓的技术商业化。和创意结合,和产业结合,这是程序员应该具备的能力。

英伟达创始人黄仁勋曾经说过,以后程序员就不存在了,人们只需要会中英文。我把这种言论输入到ChatGPT里;AI说,这是黄仁勋在宣传他们的产品,并不是给程序员写的,真正懂得,就知道编程不是这样的。这是一个玩笑,也是事实。

超级程序员的出现,以及企业数字化转型的场景,可能是AI编程自动化带来的结果。后者生态如果爆发,对程序员的需求反而会越来越大。

国内的情况,程序员和AI绝对会长期共存,很长时间内会是一种协作的关系。

   

   口述/李亚飞  

访谈、撰文/宇婷

参考文章

李亚飞《我这5年技术创业对云端IDE的理解和预测》

https://mp.weixin.qq.com/s/2Xz9p5WiPa3zigZdZih-tw

张海龙《Cloud IDE 是不是一个伪命题》

https://www.infoq.cn/article/dtkgop7ilvontssfpwrc

王亚伟《被逼出来的自主可控,从华为自研看国产 IDE 的未来和商业模式》

https://www.infoq.cn/article/d4613NRodWJEAXqRblEu



版权声明:

凡本网内容请注明来源:T媒体(http://www.cniteyes.com)”的所有原创作品,版权均属于易信视界(北京)信息科技有限公司所有,未经本网书面授权,不得转载、摘编或以其它方式使用上述作品。

本网书面授权使用作品的,应在授权范围内使用,并按双方协议注明作品来源。违反上述声明者,易信视界(北京)信息科技有限公司将追究其相关法律责任。

评论