在过去的几个月里,由于Disrupt和其他科技活动,我们有机会与许多来自各大型科技公司的顶级技术人员、工程师和经理交谈,Bay Area 。相当多的普通人熟悉源代码生成这个词,也知道软件通常是如何构建的。但当我们与技术人员,特别是那些跟踪现代软件开发的人交谈时,我们会得到这样的问题:AppMaster 与GitHub Copilot 。这是个相当有趣的问题。
如果你正在阅读我的文章,你可能已经听说过Copilot - 一个用于高级源代码完成和生成的人工智能工具。Copilot 已经是一个相当好的辅助编程工具,当开发者只写了一部分源代码时,人工智能提供代码完成,甚至整个函数。特别是在完成模式和字典方面,Copilot :写几个项目,其余的就会自动生成。根据社区的反馈和最近GitHub CEO的帖子,Copilot 正在以良好的速度增长。
与Copilot 不同,AppMaster 专注于生成完整的软件项目,而不是碎片。AppMaster 积累整个项目的需求:服务器应用(后台)、网络应用、移动应用,以及所有补充性的东西。一般来说,我们从工程师那里收集数据模型模式、应用逻辑、端点、UI元素,以及未来应用的所有标准需求,以可视化的drag-and-drop 格式。一体化的方法让软件工程师做得更少,得到更多。
为了更好地理解,我给你一个小例子。
从网络或移动应用到服务器/后台进行API调用是最常见的任务之一。通常情况下,工程师需要查阅服务器的API文档,并创建请求/响应的结构和所有相应的代码。同样的任务可以通过AppMaster 中的一个dran&drop动作来实现。由于该平台知道关于数据模型和端点的一切,它自动预先生成视觉块,以进行无痛的API请求,包括相应的对象结构。甚至更多:在数据模型的每次变化后,业务逻辑或端点平台会自动更新依赖的用户界面元素,无需工程师干预。
从侧面看,AppMaster 和Copilot 试图解决不同的问题,我们正在研究相同的软件工程问题,但我们的方法是完全不同的。当Copilot 决定帮助软件工程师更快、更容易地编写更多的代码时,我们专注于将软件开发的范式从通过编写程序代码来创建软件转变为仅仅定义高级需求。有了需求,我们就有了巨大的好处,可以从头开始再生整个项目的代码库。我们可以出于任何原因进行再生:当需求改变时,当改进的代码生成算法可用时,更新编程语言或库的版本,甚至改变整个技术栈
我们相信未来会有"不要触摸源代码"的方法和对软件工程的高级要求。
你怎么看?好得不能再好?乌托邦?
P.S. 如果对该领域感兴趣,请查看最新的Lex Fridman播客,与特斯拉的前人工智能总监Andrei Karpathy讨论软件2.0和代码生成。