- 首先,英语或者说自然语言真的已经成为新的编程语言了,如果完全不会写代码,artifacts之类的功能可以说是一个质的突破,动手能力强的糊个简单的界面或者逻辑不复杂的应用完全不是问题;如果能够知道一些基本的工程知识,已经可以糊一些稍微复杂的应用;对于资产程序员,复杂的工作可能还干不动,但随手糊个小工具不在话下
- 然后,很多软件工程的概念会衍生出全新的理念,比如现在的人工智障在debug方面非常糟糕,生成的代码也被认为很难维护,但debug或者维护这件事情本身会不会以后就不需要了,如果说一个问题可以通过生成代码来解决,那么当新问题出现的时候,是不是能通过重新生成代码,而不是修改现有代码来解决?
- 最底层也是最重要的,模型的能力。虽说现在各家的基座模型能力开始收敛,好像快要达到上限,但对什么是一个好的代码生成模型,市面上并没有共识,只有很少数的一些测试集,也并不能有什么体系化的结论,所以一切还早
- 第二层是生成代码的平台,比如replit和cursor之类。其中我更看好也是用的最多的是replit,因为cursor更注重在代码生成,而replit主打生成应用,这两者之间的gap很大,像是部署,数据库,依赖,环境变量等等等等,复杂度不低于代码本身,以及replit所有数据都在云上,可以轻松的在不同设备之间切换,更可以无障碍的在手机和平板上完成开发
- 第三层是生成的应用。应用的设计出发点是极致的个性化,但也不是每个应用都需要从零开始,replit的remix功能就是一个很好的例子,可以在现有的应用之上叠加自定义功能
- 第四层是应用的分发。可以是终端应用的分发,世界上没有相同的两片树叶,但一定会有两个人需要相同的应用,无论多么“个性化”;也可以是“原子应用”的分发,让更多的人可以站在前人的肩膀上