Vibe Coding/氛围编程很爽?但别忘了开源生态
氛围编程「Vibe Coding」已经逐渐的被太多的程序员甚至是普通人所接受,一场全民「开挂」的草木皆兵的编程时代开启了。
自从我开始让大模型(Large Language Models)帮我写代码,我就一直在思考一个问题:LLM给我写的是什么?ta编写的代码技术依赖是什么?我在代码的编写上技术本身就是很糙,如果我不去了解这些大模型给我写的是什么,总有一天,要么骗了自己,要么就是被大模型欺骗了。
另外一个原因就是,我依赖了大模型,它是否会让我的技术止步于此?因为我以前解决编程中遇到问题的过程是:发现问题——记录;搜索+询问——解决问题;理解问题——记录解决问题的过程;实施总结的解决方法——完美的学习与解决过程。优点:我学到了技术、解决问题的思考过程和方法。缺点:缓慢,极度耗费时间。我清楚地记得有的问题甚至花费了我几年的时间(有的时候问题解决了,但是并不理解)。
我相信大部分人在使用大模型写代码的时候,初衷都是在解决一个自己无法搞定的难题。但是大模型非常厉害,以至于我们使用它解决了一个又一个难题,却忽略了它是如何解决的,忘记了这个解决的过程和学习解决的方法。最重要的是,我们忽略了大模型使用了哪些开源技术解决了这些难题,我们要感谢的并不是大模型,而是应该感谢大模型使用的那些技术,以及创建了那些开源技术的个体,也就是那些作者,和那些维护开源的程序员大佬们。
自打去年开始,我就一直在使用Tailwind,Tailwind实在太好用了。即便一个普通的前端只要稍微花一些时间,看看Tailwind的技术文档,就可以在很短的时间内开始编写相关代码。之前我写Tailwind代码的时候,都是去查阅相关的技术文档。但是自从使用了大模型之后,我直接把需求、需要的样式说给大模型,大模型就自动给我编写出Tailwind的代码。这省去了中间很多思考和学习的过程,甚至也不用去Tailwind的网站了。
出现这种情况会导致Tailwind的使用率表现出强劲的增长,但这些都是大模型带来的。不光Tailwind这个框架有这种现象,其他很多开源框架都会出现这种普遍的现象。很多大模型疯狂地去下载和使用这些开源框架。但人们只记得这些是大模型在给自己编写代码,根本不知道大模型使用了哪些开源技术,人们只知道大模型很厉害,去感谢大模型,却忘了大模型也是通过这些开源框架、开源技术才能实现了你的需求。久而久之,我们都忘记了大模型背后的那些开源技术,大家都以为这些技术是大模型研发的,可以信手拈来、随便使用。甚至有很多人使用大模型编写出来的代码,也美其名曰开源软件和开源技术,他们写完代码也不会标明项目中所依赖的技术,甚至不知道项目中所依赖的技术是什么。他们只知道这个项目可以运行,没有问题。这是多么可怕的一件事情。
大模型使人类在代码的编写上狂欢起来,让人类忘记了学习,忘记了理解代码背后编写的逻辑,以及代码的设计方式、维护方式,甚至忘记了那些开源框架和开源工具的作者。他们只记得那是自己写的,而且他们并不会标明这是用大模型生成的一堆垃圾代码。
忽然想到最近在博客添加的一个小功能,就是为每篇文章添加了AI标识,用来表示每篇文章是否依赖了AI或者是大模型进行了辅助编写。我觉得以后在自己编写的代码中,也应该添加适当的标注,标明当前的代码是否使用了AI或大模型辅助,或者是完全由AI生成,以及尽可能地标注当前代码所使用的依赖和框架、模块以及开源技术。当做对开源技术作者和维护人员的尊重,也算是对开源技术的支持尽一点微薄之力吧。