AI是否能拯救开源社区
作者:微信文章(前言:在国外写微信公众号很费劲,它的后台一半中文一半英文混杂在一起的,看得 我两眼睛发直,可能有些文章就不发在公众号了,主要发在Medium平台上,如果你想关注我的絮絮叨叨的文章,可以点文章末尾的 阅读原文 直达,或者在浏览器中访问 https://medium.com/@winlinam 访问我的那个站点)
AI会拯救开源项目吗?如果是半年前,我还会犹豫挺久,才能给出肯定答案。但是现在,毫无疑问,AI会拯救所有开源社区,会彻底改变开源社区,从头到脚的改变。
我维护的开源社区,这10年来一直都是用英文交流,其实英语不仅仅是美国用,欧洲和东南亚都有自己的语言,总不能都各说各话吧,开源社区的用户全球都有,当然还是用英语算了。
在GPT4出来时,AI对于社区的沟通就有了彻底的改变,我们所有的交流,Issues和Discussion,非英语的会全部自动翻译成英语,AI的语言能力非常强,效果很好,成本很低。
语言能力毫无疑问,可以让所有非英语母语的开源社区,具备流畅的英语交流能力。因此,我们现在每个月的社区视频会议,就从中文改成了英文,因为有了其他国家的开发者参与,其实他们英语也不是母语,但都能用英语表达清楚就足够了。
全部用英语,不代表可以有更多开发者,但可以有更多用户和朋友。社区的用户,只有交流比较多,才能成为朋友。这对社区维护者很重要,我作为维护者,会因为有很多朋友而更高兴,而默不作声的用户却无法激励我。
即使如此,开源社区最核心的问题还是无法解决,就是没人持续贡献代码的问题。我尝试过相当多的方法,包括定义核心Maintainer,给更多的权限,发文章表扬,但这些都没啥用,我们是个很小众的社区,开发者基数少,无法有很多贡献者。
AI能成为代码贡献者吗?AI在半年前还只能是更高级的代码提示,能写写单元测试,能生成一段代码;Review代码AI不行,更别提贡献核心代码了,让AI贡献一堆代码,还得花更多时间去检验,还不如自己亲自上呢。
之前AI的最大问题,在于AI只有通用知识,以及关于项目的老知识,也就是训练模型那天的知识。这对于比较复杂的项目来说,总是有各种幻觉,总有一个莫名其妙的猜想,这导致AI无法成为项目的主要代码贡献者。
半年以来,这个问题终于有进展了,有些AI IDE,会把项目的代码做成Context,包括代码,文档,测试代码,以及给AI写的Guideline。也就是说,AI有了这个项目的知识库。
我不想做广告,所以别问我是用的哪个AI IDE,你们自己试试,有类似Context功能的就可以,有项目的知识就可以有这个效果。
此外,一般AI IDE用的是Claude Sonnet4,这个模型写代码效果比GPT4还要好,而GPT5据说也很好(太慢了我没用)。足够好的模型,加上项目的知识库,让AI的代码贡献能力有了本质飞跃。
最初,我用AI来Review Pull Request,结果一个月就把几年都没看完的任务全部搞定了。只需要给AI贴一个Pull Request的链接,AI自己就会去解释这个PR的修改,帮我快速了解这个修改做什么用的。从AI输出的解释来看,它总是会根据最新的代码来解释,AI从来没出错。
现在,我正在用AI改进和优化代码。比如,我们有个规范,成员变量要用下划线结尾,为了更好区分局部变量。这个是中途加的规范,所以很多老代码没遵守规范,新的代码也不一定会遵守。这个任务,人类没2个月搞不定,AI只用了一周时间。
此外,我还在用AI提升单元测试和覆盖率,让代码改成依赖接口,更容易mock,更容易测试。虽然这个工作不一定能发现问题,但是可以让项目的逻辑能更多具备可测试性,提升整个项目的质量。
这一个月左右时间,AI贡献了11万行代码,大概是人类一年左右的工作量。估计两个月左右,AI就可以进入Top 3的贡献者名单。
你们不要觉得AI只会堆水的测试代码,人家其实也能干功能。比如IPv6的全面支持就是AI干的,之前只有一个协议支持,现在全部协议都支持了。
你们也不要觉得,AI似乎干不了更复杂的功能。人家现在只是任劳任怨,先把之前人类欠下的一屁股技术债务给还掉了。瓶颈在于我的时间,而不是AI的时间,AI还需要我给Idea。
可以发挥想象,三五年后,该是什么样的一个场景,潸然泪下。
上周我把社区的付费支持取消了,给社区捐献的朋友,可以获得我们的专门支持。一方面这些支持很容易,把问题送给AI,就可以获得准确的答案,我不过是举手之劳,不需要花很多时间,自然也不用付费支持了。
另外一方面,现在AI大概200美元一个月,一年2400美元,根本就不需要多少捐献,就可以支撑社区的发展,我自然也不需要积极拓展捐献的贡献者。对比一个人类开发者,一个人至少3000美元一年,需要两三个人类。
AI真正做到了吃得少,不挑活,没脾气,不知疲倦,质量高。
反观人类开发者,简单的功能嫌弃没挑战,复杂的功能又搞不定,技术牛逼的目中无人,养家糊口的压力没空贡献,有钱的又年纪太大没冲劲,平庸的局外人还质疑开源用爱发电,浅薄的人还要嘲笑不赚钱的理想主义者,这些毛病AI一个都没有,哎,可怜的人呐。
我倒不是说,AI将完全接管这个项目的开发,因为Admin权限还在我的手里,我紧紧攥着这个权限,尽量保住我的位子,每天我都告诉自己:AI还需要我的idea,还需要我的品味,还需要我的判断力,还需要我来做选择。
真的需要我吗?我现在还不确定,过几年我再来回答这个问题。
所以,现在,我负责出Idea,AI负责干活,一人一AI,即可创造和维护这个复杂和绚烂的世界,每个开源项目都是一个独特的软件世界。
其他开源项目当然也可以,非开源的项目也没问题,一般项目还没我们这个项目那么大。何况AI的能力还不止于此,AI可以维护更大规模的项目。
未来已来,饭碗在哪里?
页:
[1]