最近几年,AI编程工具。发展很快。尤其是2021年6月,GitHub和OpenAI合作。发布了GitHub Copilot技术预览之后,AI辅助编程。一下子成了大家热议的话题,很多程序员。都在讨论,AI会不会取代程序员。AI编程工具,到底好不好用,能不能提升效率。

我自己,也是一个喜欢尝试新工具的人。从Copilot发布技术预览开始,我就申请了试用资格。后来,又试用了其他几款AI编程工具。用了几个月,有一些自己的体会和感受。

总的来说,AI编程工具。现在还处于发展的早期阶段,还不是很成熟。还有很多问题。比如,生成的代码。不一定正确,不一定最优。有时候会有bug,有时候会生成很奇怪的代码。还有版权、安全等方面的争议。但不可否认的是,这些工具。确实能在一定程度上,提升编程效率。减少重复劳动,让程序员。能把更多的时间,花在更有创造性的事情上。

今天,写这篇文章。推荐几款目前处于预览阶段的AI编程Copilot工具,包括GitHub Copilot、Tabnine、Kite、Codeium等。聊聊它们的特点、优缺点、使用体验,以及怎么用这些工具。提升编程效率,希望能给大家一些参考。

先说明一下,这些工具。目前大部分都还处于预览阶段,功能还在不断更新和完善。我使用的时间也有限。可能理解得不够深入,评价也不一定客观。仅供大家参考。如果有说得不对的地方,欢迎大家指正。

一、什么是AI编程Copilot

在推荐工具之前,先简单介绍一下,什么是AI编程Copilot。

Copilot,直译过来。就是"副驾驶"的意思,AI编程Copilot。就是AI编程副驾驶,也就是用AI技术。辅助程序员写代码,就像一个副驾驶。坐在你旁边,帮你看路。帮你导航,帮你做一些辅助性的工作。但主驾驶,还是你自己。

具体来说,AI编程Copilot。一般是作为编辑器的插件,安装在VS Code、JetBrains系列IDE、Vim等编辑器里,当你写代码的时候,它会根据你写的代码、注释、函数名等上下文,实时地给你提示,自动补全代码。甚至生成整个函数、整个类。

它的原理。一般是基于大规模的语言模型,用海量的开源代码。进行训练,让模型。学会了代码的语法、模式、常见的写法。然后,根据上下文。预测接下来应该写什么代码,给你提示。

和传统的代码补全工具。比如IDE自带的补全,相比。AI编程Copilot,最大的区别。就是它能理解上下文,能生成更长、更复杂的代码。而不只是补全一个变量名、一个函数名。比如,你写一个函数名。加一句注释,它就能生成整个函数的实现;你写一个测试用例的开头。它就能生成整个测试用例;你写一个类的定义,它就能生成整个类的方法。

这就是AI编程Copilot的强大之处,它能大大减少重复劳动。提高编程效率,让程序员。能把更多的时间,花在更有创造性的事情上。比如架构设计、业务逻辑、问题排查等,而不是花在写重复的样板代码上。

当然,它也不是万能的。它生成的代码,不一定正确。不一定最优,有时候会有bug。有时候会生成很奇怪的代码。所以。需要程序员,自己去判断。去审查,去修改。不能完全依赖它。它只是一个辅助工具。一个副驾驶,主驾驶,还是程序员自己。

二、GitHub Copilot

首先,推荐的第一款,也是目前最火、最受关注的一款,就是GitHub Copilot。

基本介绍

GitHub Copilot,是GitHub和OpenAI合作开发的AI编程工具。2021年6月,发布技术预览。目前,还处于技术预览阶段。需要申请试用资格。通过之后,才能使用。它基于OpenAI的Codex模型。这个模型,是GPT-3的后代。专门用海量的开源代码,进行了训练,擅长生成代码。

GitHub Copilot,支持很多编辑器,包括VS Code、JetBrains系列IDE(IntelliJ IDEA、PyCharm、WebStorm等)、Neovim等,支持很多编程语言,包括Python、JavaScript、TypeScript、Java、Go、C++、Ruby、PHP等,几乎所有主流的编程语言,都支持。

使用体验

我自己,用GitHub Copilot。用了几个月,主要是在VS Code里。写Python和JavaScript,整体的体验,还是很惊艳的。

它的补全,非常智能。能根据上下文,生成很长的代码。比如。我写一个函数名,加一句注释。说明这个函数要做什么,它就能生成整个函数的实现。包括参数、返回值、异常处理。甚至注释,都能生成。很多时候。它生成的代码,和我自己想写的。几乎一模一样。甚至比我自己写的,还要好,还要规范。

比如,我写一个函数。叫calculate_average,注释写"计算列表中所有数字的平均值",它就能生成:

def calculate_average(numbers):
    """计算列表中所有数字的平均值"""
    if not numbers:
        return 0
    return sum(numbers) / len(numbers)

连边界情况的处理,都考虑到了,非常贴心。

再比如,我写一个测试用例。写了函数名,它就能生成整个测试用例。包括各种边界情况的测试,非常方便。

它还能根据你写的代码,自动生成注释。自动生成文档字符串,自动生成类型提示。这些,都能大大提高编程效率。

而且,它的学习能力很强。用得越久,它就越了解你的编码风格。生成的代码,就越符合你的习惯,越好用。

优点

  1. 补全智能,生成的代码质量高,能生成很长、很复杂的代码,甚至整个函数、整个类。
  2. 支持的语言和编辑器多,几乎所有主流的编程语言和编辑器,都支持。
  3. 学习能力强,用得越久,越了解你的编码风格,生成的代码,越符合你的习惯。
  4. 和GitHub深度集成,能利用GitHub上海量的开源代码,训练模型,生成的代码,质量有保障。
  5. 界面友好,和编辑器的集成度高,使用起来,很自然,很流畅。

缺点

  1. 目前还处于技术预览阶段,需要申请试用资格,不是所有人都能用,而且,未来可能会收费,价格还不确定。
  2. 生成的代码,不一定正确,不一定最优,有时候会有bug,有时候会生成很奇怪的代码,需要自己审查和修改。
  3. 有版权和安全方面的争议,因为它是用开源代码训练的,生成的代码,可能和某些开源代码,高度相似,可能会有版权问题;而且,生成的代码,可能会有安全漏洞,需要自己审查。
  4. 有时候会生成一些没用的、重复的代码,或者生成的代码,不符合项目的规范,需要自己修改。
  5. 对网络要求高,因为是云端的模型,需要联网才能用,网络不好的时候,会卡顿,或者用不了。

适合人群

GitHub Copilot,适合那些,经常写重复的样板代码,想提高编程效率,减少重复劳动的程序员。尤其是写Python、JavaScript、TypeScript等动态语言的程序员,因为这些语言,Copilot的支持最好,生成的代码质量最高。

如果你是写Java、C++等静态语言的,Copilot也能用。但效果。可能不如动态语言那么好,因为这些语言,样板代码更多,类型系统更复杂,Copilot生成的代码。可能会有更多的类型错误。需要自己修改。

总的来说,GitHub Copilot。是目前最好的AI编程工具之一,虽然还有一些问题。但它的补全能力。确实很惊艳,能大大提高编程效率,值得一试。

三、Tabnine

第二款,推荐的是Tabnine。这是一款比较老牌的AI代码补全工具,比GitHub Copilot,出现得更早。

基本介绍

Tabnine,以前叫Codota。是一家以色列公司开发的AI代码补全工具,2019年左右。就开始做AI代码补全了,比GitHub Copilot。早了好几年。它基于自己的AI模型,用海量的开源代码训练,支持很多编程语言和编辑器。

Tabnine,有免费版和付费版。免费版,功能有限。只能做基本的补全;付费版,功能更强大。能生成更长的代码,支持更多的语言,还有团队版、企业版等。

Tabnine,支持的编辑器。比GitHub Copilot还多,几乎所有主流的编辑器。都支持,包括VS Code、JetBrains系列、Eclipse、Vim、Emacs、Sublime Text等。支持的编程语言,也很多。几乎所有主流的语言,都支持。

使用体验

我用Tabnine,用的时间不长。主要是在Copilot出来之前,用过一段时间。后来,Copilot出来之后。就用得少了。但最近,又重新用了一下,感觉它也进步了很多。

Tabnine的补全,也很智能。能生成比较长的代码,虽然。整体的补全能力,不如GitHub Copilot那么惊艳。生成的代码,长度和复杂度,都不如Copilot。但它也有自己的优势。

比如,它的补全速度。很快,因为它有本地的模型。不需要完全依赖云端,网络不好的时候。也能用。而且,延迟很低,补全很流畅。

比如,它的隐私性。更好,因为它支持本地运行模型。代码不需要上传到云端,对于那些。对代码隐私要求高的企业和个人来说,这是一个很大的优势。

比如,它的免费版。就能用,虽然功能有限。但基本的补全。还是有的,对于那些。不想花钱。或者申请不到Copilot试用资格的人来说,是一个不错的选择。

而且,最近。Tabnine也更新了自己的模型,推出了Tabnine AI。补全能力,比以前强了很多。能生成更长的代码。甚至整个函数,和Copilot的差距,在慢慢缩小。

优点

  1. 比较老牌,发展成熟,稳定性好,支持的编辑器和语言,非常多,几乎所有主流的,都支持。
  2. 有本地模型,补全速度快,延迟低,网络不好的时候,也能用,隐私性好,代码不需要上传到云端。
  3. 有免费版,基本功能就能用,不需要申请试用资格,门槛低。
  4. 付费版,价格相对合理,还有团队版、企业版,适合企业使用。
  5. 不断更新,模型越来越强,补全能力,越来越好,和Copilot的差距,在慢慢缩小。

缺点

  1. 整体的补全能力,不如GitHub Copilot,生成的代码,长度和复杂度,都不如Copilot,智能程度,也稍逊一筹。
  2. 免费版,功能有限,只能做基本的补全,想体验完整的功能,需要付费。
  3. 界面和交互,不如Copilot友好,用起来,没有Copilot那么流畅,那么自然。
  4. 学习能力,不如Copilot,对个人编码风格的学习,没有Copilot那么好,生成的代码,有时候,不符合你的习惯。
  5. 文档和社区,不如GitHub Copilot活跃,遇到问题,能找到的资料,相对少一些。

适合人群

Tabnine,适合那些,对代码隐私要求高,不想把代码上传到云端。或者网络不好。需要本地运行模型的程序员;也适合那些,申请不到Copilot试用资格。或者不想等,想马上用AI代码补全工具的程序员。可以先用Tabnine的免费版,体验一下。

如果你已经在用GitHub Copilot了,那Tabnine。可能就不是必须的了。因为Copilot的补全能力,确实更强一些。但如果你。对隐私和本地运行有要求,那Tabnine,是一个不错的选择。

四、Kite

第三款,推荐的是Kite。这也是一款比较老牌的AI代码补全工具,和Tabnine,差不多同时期。

基本介绍

Kite,是一家美国公司开发的AI代码补全工具,2016年左右,就开始做了,也是比较早的AI代码补全工具之一。它基于自己的AI模型,叫Kite Engine,用海量的开源代码训练,支持Python、JavaScript、TypeScript、Java、Go、C/C++等编程语言。

Kite,主要支持VS Code和JetBrains系列的编辑器,也支持其他一些编辑器,但支持得最好的,还是VS Code和JetBrains。

Kite,有免费版和付费版。免费版,功能有限。只能做基本的补全;付费版,叫Kite Pro。功能更强大,能生成更长的代码,有更多的功能。

使用体验

我用Kite,用的时间也不长。主要是在Python开发的时候,用过一段时间。因为Kite,对Python的支持。是最好的,它最早。就是做Python的AI补全的,后来,才慢慢支持其他语言。

Kite的补全,也很智能。尤其是在Python方面。补全的准确率,很高。能生成比较长的代码。而且,它还有一个很有特色的功能。就是"代码示例",当你写一个函数的时候。它会给你显示,这个函数。在开源代码中,是怎么用的。有哪些常见的用法,这对于学习新的库。新的API,非常有帮助。

比如,你用requests库。写requests.get的时候,它会给你显示。requests.get的常见用法,有哪些参数。怎么传,返回值怎么处理。还有很多实际的代码示例,这对于新手来说。非常友好,能快速学会怎么用这个库。

但Kite,也有一些问题。比如。它的免费版,广告比较多。经常会弹出一些提示,让你升级到Pro版。有点烦人;比如,它的资源占用。比较高,因为它要在本地运行模型。会占用比较多的内存和CPU,电脑配置不好的话。可能会有点卡;比如。它支持的语言,相对少一些。主要是Python和JavaScript,其他语言的支持,不如Tabnine和Copilot。

而且,最近。Kite的发展,好像有点慢。更新不如以前频繁了,和Tabnine、Copilot相比。竞争力,好像在下降。

优点

  1. 对Python的支持,非常好,补全准确率高,功能丰富,是Python开发的好帮手。
  2. 有"代码示例"功能,能显示函数和库的常见用法,对于学习新库、新API,非常有帮助。
  3. 有本地模型,补全速度快,隐私性好,代码不需要上传到云端。
  4. 有免费版,基本功能就能用,门槛低。
  5. 界面友好,和编辑器的集成度高,使用起来,比较流畅。

缺点

  1. 支持的语言,相对少一些,主要是Python和JavaScript,其他语言的支持,不如Tabnine和Copilot。
  2. 免费版,广告比较多,经常弹出升级提示,有点烦人。
  3. 资源占用,比较高,本地运行模型,占用较多的内存和CPU,电脑配置不好的话,可能会卡。
  4. 整体的补全能力,不如GitHub Copilot,生成的代码,长度和复杂度,都不如Copilot。
  5. 最近发展较慢,更新不频繁,竞争力,在下降。

适合人群

Kite,适合那些。主要做Python开发,想提高Python编程效率。尤其是想学习新库、新API的程序员。它的代码示例功能,非常有帮助。

如果你是做其他语言开发的,那Kite。可能就不是最好的选择了,因为它对其他语言的支持,不如Tabnine和Copilot。

五、Codeium

第四款,推荐的是Codeium。这是一款比较新的AI代码补全工具,最近几年,才出来的。但发展很快。

基本介绍

Codeium,是一家美国的初创公司开发的AI代码补全工具。2021年左右,才出来的。比较新。但发展很快,功能也越来越强大。它基于自己的AI模型。用海量的开源代码训练,支持很多编程语言和编辑器。

Codeium,最大的特点。就是它的个人版,是完全免费的。而且。功能没有限制,和付费版的功能。差不多,这对于个人开发者来说。是一个很大的福利。它也有团队版和企业版,是收费的,针对企业用户。

Codeium,支持的编辑器。也很多,包括VS Code、JetBrains系列、Vim、Emacs、Sublime Text等。支持的编程语言,也很多。几乎所有主流的语言,都支持。

使用体验

我用Codeium,用的时间不长。是最近才开始用的,因为它是新出的。而且个人版免费。所以。就试了一下,整体的体验。还是很不错的,有点超出我的预期。

它的补全能力,很强。虽然,整体上。还是不如GitHub Copilot。但差距,已经不大了。能生成很长的代码。甚至整个函数。而且,准确率。也很高,很多时候。生成的代码,都能直接用。或者只需要稍微修改一下。

而且,它的补全速度。很快,延迟很低。用起来,很流畅。很自然,和Copilot的体验,差不多。

它还有一些,很有特色的功能。比如。支持自然语言生成代码,你用自然语言。写一段注释,描述你想要什么功能。它就能生成对应的代码;比如,支持代码搜索。你可以用自然语言,搜索代码库中的代码;比如。支持代码解释,你选中一段代码。它能给你解释,这段代码是做什么的。这些功能。都很实用,很有特色。

最重要的是,它的个人版。是完全免费的,功能没有限制。这对于个人开发者来说,真的是太香了。相当于,免费使用一个。和Copilot差不多的AI代码补全工具,非常划算。

优点

  1. 个人版完全免费,功能没有限制,对于个人开发者来说,非常划算,是最大的优势。
  2. 补全能力强,和GitHub Copilot的差距不大,能生成很长的代码,准确率高。
  3. 补全速度快,延迟低,用起来,流畅,自然,体验好。
  4. 有特色功能,比如自然语言生成代码、代码搜索、代码解释等,很实用。
  5. 支持的编辑器和语言多,几乎所有主流的,都支持,而且,更新很快,功能越来越强。

缺点

  1. 比较新,发展时间短,稳定性,不如老牌的工具,偶尔会有一些小问题。
  2. 整体的补全能力,还是不如GitHub Copilot,在一些复杂的场景下,生成的代码,质量不如Copilot。
  3. 学习能力,不如Copilot,对个人编码风格的学习,没有Copilot那么好。
  4. 文档和社区,不如GitHub Copilot和Tabnine活跃,遇到问题,能找到的资料,相对少一些。
  5. 企业版的功能,还不够完善,和成熟的企业级工具相比,还有差距。

适合人群

Codeium,非常适合那些。个人开发者,想免费使用AI代码补全工具。不想花钱。或者申请不到Copilot试用资格的人,它的个人版。完全免费,功能没有限制。补全能力也很强,非常值得一试。

如果你是企业用户,想给团队采购AI代码补全工具。那Codeium的企业版,也可以考虑。但因为它比较新。企业级的功能,还不够完善。可能需要再观察一段时间。

六、怎么用好AI编程Copilot工具

推荐了这么多工具,最后。聊聊怎么用好这些AI编程Copilot工具,让它们真正成为。提升效率的利器,而不是,帮倒忙的累赘。

1. 把它当成助手,不是替代品

首先,最重要的一点。就是要把AI编程Copilot,当成助手。当成副驾驶,而不是替代品。不是主驾驶。它生成的代码。只能作为参考。不能直接用。必须经过你自己的审查、测试、修改,确认没问题了,才能用。

因为,它生成的代码。不一定正确,不一定最优。有时候会有bug,有时候会有安全漏洞。有时候会不符合项目的规范,如果你不审查。直接用。可能会引入很多问题,反而降低了效率。甚至造成严重的后果。

所以,一定要记住。你是程序员,你是主驾驶。AI只是助手,只是副驾驶。最终的决定权,在你手里。你要对自己写的代码,负责。

2. 写好注释和函数名

AI编程Copilot,是根据上下文。来生成代码的,上下文越清晰。越明确,它生成的代码。就越准确,越符合你的需求。所以。写好注释和函数名,非常重要。

比如,你写一个函数。函数名,要能清晰地表达。这个函数是做什么的;注释,要详细地描述。这个函数的功能、参数、返回值、注意事项。这样,AI就能根据这些信息,生成更准确、更符合你需求的代码。

如果你函数名,写得很模糊。注释也不写,那AI。就不知道你想做什么,生成的代码。可能就和你想要的。差得很远。需要你反复修改,反而降低了效率。

所以,用好AI编程Copilot的第一步。就是写好注释和函数名,让上下文,清晰明确。

3. 从小处开始,逐步生成

不要指望,AI能一下子。生成整个项目,整个系统的代码。那不现实,也不可靠。最好的方式。是从小处开始,逐步生成。一个函数一个函数地写,一个模块一个模块地写。每生成一部分,就审查一部分。测试一部分,确认没问题了,再继续下一部分。

比如,你要写一个功能。先写函数名和注释,让AI生成函数的实现。审查、测试、修改,确认没问题了。再写下一个函数,这样。一步步来,既保证了代码的质量,又提高了效率。

如果你一下子,让AI生成很多代码。那里面。可能会有很多问题,你审查起来。也很麻烦,反而不如。一步步来,效率高。

4. 用它做重复劳动,创造性的工作自己做

AI编程Copilot,最擅长的。是做重复的、样板式的代码。比如,数据模型的定义、CRUD操作、测试用例、简单的工具函数等。这些代码,模式固定。重复度高,AI生成的准确率。很高,能大大提高效率。

而那些,创造性的、复杂的、需要深入思考的工作。比如。架构设计、核心业务逻辑、复杂的算法、性能优化、安全设计等,这些。AI是做不好的,还是需要你自己来做。因为,这些。需要深入的思考。需要对业务和技术的深刻理解。AI,目前还做不到。

所以,最好的方式。是把重复的、样板式的工作,交给AI。让它帮你做,提高效率;把创造性的、复杂的工作。留给自己,深入思考。做好做精。这样,既能提高效率,又能保证质量。

5. 不断学习,提升自己的能力

最后,也是最重要的。就是要不断学习,提升自己的能力。AI编程工具。再强大,也只是工具。它能帮你写代码。但不能帮你思考。不能帮你设计。不能帮你解决复杂的问题。最终,决定你能走多远的。还是你自己的能力,你的技术水平。你的业务理解,你的问题解决能力。

所以。不要因为有了AI编程工具,就不学习了。就不思考了,就依赖它了。相反。你要更努力地学习,更深入地思考。不断提升自己的能力,这样。你才能更好地使用AI工具,让它成为你的得力助手。而不是,被它牵着鼻子走。

而且,AI编程工具。发展很快,新的工具。新的功能,不断涌现。你也要不断学习,了解新的工具。新的用法,不断提升自己的效率。

七、写在最后

AI编程Copilot工具,是最近几年。软件开发领域,最令人兴奋的进展之一。它代表了,AI在软件开发领域的应用。已经从概念,走向了实用。开始真正地,帮助程序员。提高效率,减少重复劳动。

虽然,这些工具。目前还处于发展的早期阶段,还不是很成熟。还有很多问题。比如,生成的代码。不一定正确,不一定最优。还有版权、安全等方面的争议。但不可否认的是,它们确实能在一定程度上。提升编程效率,改变我们的编程方式。

未来,随着AI技术的不断发展。这些工具,会越来越强大。越来越智能,能做的事情。也会越来越多。可能会,彻底改变我们的编程方式。甚至,改变整个软件开发行业。

但不管工具怎么变,有一点。是不会变的,那就是。程序员的价值,不在于写代码。而在于思考,在于解决问题。在于创造。AI,能帮你写代码。但不能帮你思考。不能帮你解决复杂的问题。不能帮你创造新的东西。所以。不用担心,AI会取代程序员。至少,在可预见的未来。不会。相反。AI,会成为程序员的得力助手。让程序员,能把更多的时间,花在更有创造性、更有价值的事情上。

所以,我建议。每一个程序员,都可以尝试一下。这些AI编程Copilot工具,体验一下。AI能给我们的工作,带来什么样的改变。然后。学会用好它们,让它们成为,提升我们效率的利器。

当然,在使用的过程中。也要保持理性。不要盲目依赖,要记住。你是主驾驶,AI只是副驾驶。最终的决定权,在你手里。你要对自己写的代码,负责。

最后,用一句话结束本文:AI编程工具。是利器。不是替代品,用好它。能让你如虎添翼;用不好。可能会帮倒忙。希望每一个程序员,都能用好这些工具。提升自己的效率,写出更高质量的代码。

祝你编程愉快,效率满满!