最近,AI技术的快速发展引发了业界的激烈讨论。尤其是作为一名程序员,面对AI工具对生产力的提升令人兴奋,但同时这些工具也让人感到焦虑。不少程序员担忧像GitHub Copilot这样的AI辅助编码工具,会对传统的开发流程和职业生态产生颠覆性的影响。
与其揣测这些改变可能带来的结局,不如以开放的心态接触这些工具,探索它们如何真正提高效率,从而成为面对未来的“生存者”。本文基于对GitHub Copilot、ChatGPT等产品的深度使用体验,将这些AI辅助开发工具进行横向评测,希望帮助你找到适合自己的解决方案。
评测工具包括以下几款:
GitHub Copilot
ChatGPT(基于GPT-3.5)
New Bing
Cursor.so
这些工具可结合使用,并不相互排斥。本文最后将对比总结它们的优缺点并提出个人的建议。
GitHub Copilot是GitHub与OpenAI合作推出的AI代码助手,利用了OpenAI的GPT技术,支持多语言代码生成,包括Python、JavaScript、TypeScript、Ruby等。你可以将它与主流IDE或文本编辑器无缝集成,比如VS Code。
经过一个月的深度体验,以下是我对Copilot的总结:
编写熟悉语言时: 它可以帮助减少重复模板代码的编写工作。
编写不熟悉语言时: 能准确理解意图,生成代码,免去搜索API文档的麻烦。
心流式片段生成: 能顺着上下文快速生成大段代码,但并不擅长从零起手构建完整代码段。
以下是几种典型的使用场景:
1. 根据上下文生成代码
它能根据函数名、类名或注释内容,生成符合上下文的代码。
2. 根据代码生成注释
反过来,它也可以为已有代码生成注释,有助于文档化工作。
3. 自动命名变量
Copilot为变量生成合理命名,降低了为变量命名的时间开销。
4. 代码互动与讨论
虽然Copilot无法像ChatGPT一样“一问一答”,但能根据当前上下文快速生成补全代码并进行解释,显著提升效率。
编写示例:单例模式
在一个测试场景里,要求它独立写一个线程安全的单例模式代码。Copilot不仅能够补全类的框架,甚至能够在一定程度上优化代码逻辑,比如添加双重检查锁。
补全现有代码
当应用于实际项目中未完成的函数时,Copilot可以根据上下文生成高度相关的代码片段。尽管生成的代码有时需要稍作调整,大多数情况下已能满足开发需要。
隐私与数据安全: 所有代码上下文都会通过网络传输至微软服务器。尽管有隐私保护政策,但在国内许多行业这个处理方式可能无法满足合规性要求。
理解复杂代码逻辑有限: 它更擅长生成简单且常见的代码片段,对于复杂、不常见的逻辑支持相对薄弱。
ChatGPT是一款基于GPT模型的对话式AI工具,能流畅应答自然语言问题,也可处理代码生成相关需求。凭借大量代码相关语料的训练,ChatGPT展现了出色的代码生成能力。
ChatGPT在以下场景中表现出色:
对快速问题解答,例如搜索如何正确使用特定API。
独立完成算法实现和代码片段编写。
详细解释生成的代码逻辑。
编写示例:单例模式
通过多轮问答,它可以优化最初的代码,让生成的版本更接近最佳实践(如加上volatile实现线程安全)。
复杂示例:Kotlin+Reactor 的并发接口设计
ChatGPT成功解决了一个实际开发中的问题:如何在Kotlin中利用Reactor实现线程池的并发接口。虽然初始解决方案存在一定问题,但经过多次提问和提示,其回答逐步接近正确可运行的代码。
上下文局限: ChatGPT无法全面阅读项目代码,因此缺乏对全局代码设计的理解支持。
结果质量不稳定: 某些请求的生成代码可能出现语法错误、不符合需求等问题。
实时辅助性不足: 与Copilot不同,ChatGPT无法实时嵌入开发环境辅助编码。
New Bing整合了GPT模型与Microsoft Bing搜索引擎,提供了搜索与AI对话的双重能力。
在搜索信息的基础上,新Bing能智能总结网络内容并生成代码。其能力覆盖了从简单问题回答到现场生成代码的多个场景。
编写示例:单例模式
New Bing在生成代码和解释代码逻辑方面表现接近ChatGPT。
复杂示例:Kotlin+Reactor 的并发接口设计
面对较复杂的代码设计题,New Bing的表现略显不足,生成的代码虽然可运行,但并未完全满足需求。
结果易受搜索内容影响: 用搜索引擎增强,却让它更容易生成“被搜索到的信息错误”的代码片段。
编程辅助非核心功能: 与专注于代码生成的工具相比,New Bing更像是一个增强的搜索引擎。
Cursor.so是一款集成了AI辅助功能的免费代码编辑器。但目前,这款工具还很初级,更像是Copilot的替代方案。
编写示例:单例模式
Cursor.so 能够快速完成单例模式的代码编写,性能与Copilot相当。
补全项目现有代码
它能对简化的场景进行代码补全,但在编辑器的稳定性和功能性方面存在一定问题。
基础功能缺失: 不支持插件、不支持版本控制等,导致无法胜任复杂项目开发需求。
服务不稳定: 在多次测试中,Cursor.so频繁出现无法连接的问题。
以下是对这四款工具的优缺点对比:
工具
优点
缺点
GitHub Copilot
提高代码开发效率,提供深度优化的上下文支持
存在隐私风险
ChatGPT
灵活应答复杂问题,适用于广泛的开发场景
缺乏实时性和上下文支持
New Bing
强化搜索功能,能提供实时信息
容易受搜索结果误导
Cursor.so
免费、能体验基础辅助编程功能
基础功能不足,服务不稳定
优选:GitHub Copilot 配合 ChatGPT。
Copilot 用于辅助日常编码。
ChatGPT 则可用来提问复杂问题或查找解决方案。
备用:Cursor.so 适合不想支付Copilot费用的用户,但其功能和稳定性尚难满足高强度开发需求。