GitHub Copilot vs Amazon CodeWhisperer | 2023谁更牛?
无论是学生、初学者还是经验丰富的专业人士,我们将GitHub Copilot和Amazon CodeWhisperer进行比较,看看谁是2023年最好的AI编码助手
在本文中,我们将探讨一个问题:GitHub Copilot vs Amazon CodeWhisper,哪个是2023年最好的AI编码助手?简短的回答是它们都很优秀,但最终取决于您的开发风格、预算和喜欢的语言。
为了正确回答这个问题,我们深入研究了每个AI编码助手,包括关键功能、语言支持、IDE支持、数据隐私以及价格。
此外,如果您对AI编码助手的概念还不太了解,不确定为什么需要使用它们,我们还解答了这些问题,包括针对学生、初级开发人员和经验丰富的专业人士的AI编码助手的益处。
所以,如果你准备好了,让我们开始吧!
什么是AI编码助手?
如果您对AI编码助手的世界还一无所知,不确定我们在谈论什么,请从这里开始!
毫无疑问,2023年仍然是AI的年代,近80%的开发人员支持使用AI工具,超过40%的人在日常开发工作中使用AI工具。哇。
但是什么是AI编码助手呢?嗯,它是一种基于人工智能的工具,旨在帮助您编写、审查、调试和优化代码。
但它们的来源是什么?非常好的问题。简而言之,它们是我们在机器学习、大型语言模型和自然语言处理(NLP)方面取得的进步的自然演变。
当然,我们都可以访问ChatGPT、Google Bard,甚至是Meta的新AI眼镜,但是在软件开发方面,AI编码助手是这一数字革命的产物。
所以,无论您是刚开始还是经验丰富的开发专业人员,您都很有可能会看到更多关于AI编码助手的信息。
AI编码助手也是更广泛的AI开发工具的一个子类型,该子类型可能包括用于测试和文档编写的工具。
让我们来看看您可以从AI编码助手中期望的一些主要功能:
- 代码建议:与IDE的自动完成功能不同,AI编码助手可以根据您已经编写的内容的上下文来预测和建议下一行代码或提供补全。
- 代码审查:它们最大的优势之一是能够发现问题、错误或与最佳实践偏离的地方,并提供修复建议。
- 错误检测:每个开发人员都可能在代码中添加错误,这就是为什么这些工具在查找可能被意外忽视的细微错误方面非常出色。
- 代码优化:AI编码助手非常适合优化代码段以提高性能或内存使用率 – 是的,我们谈论更好的Big-O性能。
- 重构:AI助手可以提供重构建议,以改进代码的可维护性和结构。
- 自然语言查询:当您用正常的句子询问AI如何实现特定的代码功能时,这就是自然语言查询。如果您花费了一些时间向ChatGPT寻求开发建议,这将会很熟悉。
- 文档辅助:AI编码助手非常适合在进行更改后生成或更新文档。
- 学习和教程:如果您刚开始学习编码,AI助手可以提供个性化的学习体验。将它们视为编码任务的个人导师,可以提供实时反馈。
- 与开发环境集成:无论您使用最好的Python IDE还是像VSCode这样的超级流行编辑器,许多AI编码助手都可以直接集成。
为什么要使用AI编码助手?
我们认为,不论开发人员的经验或技能水平如何,AI编码助手都可以为所有开发人员提供帮助,以补充传统的学习和编码实践。
重要说明:我们坚信这些工具不是用来取代程序员或消除学习如何编码的需要。虽然依赖AI来代替你工作可能很诱人,但这可能是一个很险恶的斜坡!
话虽如此,让我们从学生、初学者开发人员和专业开发人员的角度来考虑这个问题:
学生:无论是高中、大学,还是你正在教孩子如何编码,AI编码助手都可以有助于:
- 加速学习:即时反馈和建议可以帮助你更快地学习。
- 作业和项目辅助:AI助手可以提供指导,确保你不会在困难的任务中卡住。
- 概念澄清:你可以询问代码的工作原理。
- 增强信心:积极的反馈和纠正可以帮助学生在编码方面感到更自信。
初学者开发人员:也许你只编码了很短的一段时间,或者在接受了Python课程后开始了初级开发人员的角色,无论哪种情况,AI编码助手都可以帮助你:
- 代码质量:AI助手可以帮助初学者编写更清晰、更高效和易于维护的代码。
- 提高生产力:你可以直接向AI编码助手寻求帮助,而不是去Google或Stack Overflow寻求帮助。
- 熟悉多种编程语言:许多AI助手支持多种语言,这对于学习其他语言来扩展你的技能非常有用。
专业开发人员:如果你已经编码了一段时间,可能会把自己视为专业开发人员。你可能对这些新工具犹豫不决,我们完全理解。
总的来说,我们认为这些工具可以被看作是AI助力我们在以下几个方面:
- 速度和效率:实时建议可以让专业人士更快地编码。
- 代码审查:AI助手可以快速指出潜在的问题。
- 错误检测:即使是经验丰富的开发人员也会犯错误,AI助手可以快速发现常见或不常见的错误。
- 减少重复工作:对于重复的任务,你可以使用AI生成样板代码,让你专注于更复杂的挑战。
- 重构辅助:AI工具可以帮助改善代码的可维护性。
- 及时了解最佳实践:AI编码助手可以帮助专业人士跟上最佳实践的最新发展。
现在你知道什么是AI编码助手以及它如何帮助你进行开发,让我们来看看目前GitHub Copilot和Amazon CodeWhisperer中最受欢迎的两个选项。
GitHub Copilot是什么?
GitHub Copilot于2021年推出,是由GitHub、OpenAI和微软合作开发的第一个主流AI编码助手,这也是为什么它目前是2023年最受欢迎的AI编码助手。
让我们深入了解GitHub Copilot提供的功能、它的受欢迎程度以及免费、个人和企业计划之间的区别。
了解GitHub Copilot
起源和发展
GitHub Copilot是基于OpenAI的Codex模型构建的。它于2021年6月发布的时候是一个有限的测试版,并迅速得到了120万用户的认可,其中许多人将其视为学习如何使用Copilot的革命性工具。
功能性
不仅仅是一个自动补全工具,Copilot还可以根据提供的上下文提供整行或代码块。它经过数十亿行公共代码库的训练,提供有根据上下文的代码建议,提高了开发效率。
您只需开始编写您想要使用的代码,或编写一个描述您目标的自然语言注释,Copilot可以分析上下文并提供建议。
所以,无论您是想弄清楚如何使用一个棘手的Python操作符,还是需要帮助编写算法,Copilot都可以提供帮助。
多语言支持
目前,Copilot已经为流行的编程语言进行了优化,如Python、JavaScript、TypeScript、Ruby、Go、C#和C++。
话虽如此,只要GitHub上有使用该编程语言或框架的公共代码库(Copilot的训练数据来源),Copilot就可以为几乎任何编程语言或框架生成代码。
交互
无论您是在编写代码还是记录代码应该做什么的注释,Copilot都会提供上下文相关的建议。这正是一个被称为AI程序员的东西所期望的!
还有一个测试版的聊天功能(很快会有更多详细信息),它提供直接交互,增强您的AI编码体验。没错,是您自己的聊天机器人,帮助您编码时提供帮助。
兼容性
由于Copilot的流行,它提供了与各种流行的IDE和代码编辑器的集成,通过Visual Studio Code、Visual Studio、JetBrains IDE(IntelliJ IDEA、PyCharm)套件、Vim、Neovim和Azure Data Studio的插件提供了开发人员的灵活性。
训练数据
Copilot最有趣的事情之一是它是通过对公共的GitHub代码库进行训练得到的。
由于这个原因,较新或更小众的编程语言往往缺乏公共代码示例,因此Copilot对它们的支持可能不太好。同样,建议的质量可能无法与Python或JavaScript媲美。
这里有个很好的例子。如果您正在开发一个新的Python项目,您可能会得到比在Fortran(根据您的年龄,您可能不知道这是什么!)等语言中编写代码时得到更好的建议,因为GitHub上这些语言的代码库更少。
因此,尽管在公共代码库上进行训练意味着有大量的数据来获取建议,您还必须考虑您所使用的编程语言的流行程度。
此外,由于训练数据是来自各种不同质量和准确性的开源代码,您还需要记住,任何建议都可能包含过时的编码模式、错误或对过时API的引用。
事实上,GitHub的统计数据显示,Copilot的建议只有26%被接受。在这里的主要观点是要始终检查代码建议,不要盲目接受它们!这正是为什么要记住这些工具只是助手,而不是开发人员的替代品。
数据安全
从数据隐私的角度来看,Copilot对数据的保护相当明确,因为数据在传输和静态时都进行了加密。此外,您的代码不会与其他Copilot用户共享。
话虽如此,如果您对数据安全特别关注,重要的是要知道GitHub和Microsoft员工可以访问数据,这使得用户需要了解安全方面的影响。
对于个人和商业用户,数据保留的时间也有一些差异,对个人用户,提示和建议会保留,除非您在设置中关闭了代码片段收集。
如果您不喜欢将您从提示和建议中提取的数据保留并与您的GitHub身份关联在一起的想法,您可以联系GitHub支持以将其删除。
商业用户不必担心这个问题,因为Copilot不会保留任何提示或建议。
个人 vs. 商业:选择哪个Copilot?
根据您是初学者、学生还是专业编程人员,您可能想要权衡个人和企业计划之间的差异。
让我们来看一下。
个人版Copilot |
企业版Copilot |
价格:$10/月或$100/年 |
价格:$19/用户/月 |
主要特点:遥测、阻止与公共代码匹配的任何建议、与您的IDE或代码编辑器集成以及多行函数建议。 |
高级特点:个人账户的所有特点,以及面向整个组织的策略管理、审计日志和支持自定义证书的HTTP代理。 |
突出特点:Copilot Chat
Copilot最新的功能之一是一个称为GitHub Copilot Chat的集成聊天机器人工具。
在撰写本文时,该功能仍处于测试阶段,仅支持Visual Studio Code和Visual Studio。但是有了这个方便的功能,您可以像ChatGPT或Google Bard那样与语言模型库(LLM)进行直接交互。
从生成单元测试和解释代码到建议错误修复,Copilot Chat涵盖了广泛的任务。然而,像任何工具一样,它也有其局限性,例如潜在偏见。更重要的是,它还可能导致不准确的代码建议。
这可能是您需要考虑的关键局限性,因为有时它可以生成看似有效的代码,但当您仔细查看时,可能在语义或语法上是不正确的。
再次强调,请仔细审查任何代码建议!
考虑到他们与OpenAI的合作,我也很好奇是否有计划将您自己的GPT与聊天集成起来,因为这可能是个性化您的Copilot聊天体验的一种酷炫方式。
GitHub Copilot摘要
通过代码建议、自动完成、文档洞察力和对多种编程语言的支持,Copilot提供了一款AI编码助手应具备的一切功能。
由于其受欢迎,除了优秀的文档外,也有很多社区对新用户和有经验的用户提供支持。
您可以选择编写代码或用自然语言进行注释来描述您的目标以获取代码建议。甚至还有一个聊天测试功能,可以用来直接与Copilot进行交互。
有趣的是,Copilot是在公共GitHub代码库上进行训练的。这意味着它是在大量的数据集上进行训练的,但是统计数据表明只有26%的建议被接受。
主要问题在于较新或非主流的编程语言缺乏公共代码示例,这意味着与主要语言(如Python)相比,支持较少,尤其是在指出您的Python错误方面表现出色。
Copilot还提供数据隐私和加密,这意味着您的代码不会与其他Copilot用户共享。
然而,如果您对安全性比较敏感并且是个人用户,请考虑是否要调整您的设置以防止GitHub保留您的提示和建议。
使用Copilot时,这是我关闭的第一件事,因为我更愿意避免与数据泄露相关的潜在麻烦。
什么是Amazon CodeWhisperer?
作为最新的AI编码助手之一,Amazon CodeWhisperer是最受开发者欢迎的AI工具之一,根据最新的Stack Overflow开发者调查。
让我们仔细看看Amazon CodeWhisperer提供的功能,包括免费(个人)和专业制的区别。
了解Amazon CodeWhisperer
起源和发展
Amazon在2022年6月宣布推出CodeWhisperer,这是Copilot公开发布的第二天。
这次战略性的发布可能受到了Copilot从测试版过渡的影响,这证明了Amazon支持开发者的承诺,提供先进的人工智能驱动的编码助手。
实际上,CodeWhisperer被宣传为一个可以通过实时、定制的代码建议加速软件开发的AI双人编程工具。
功能
CodeWhisperer旨在在您的集成开发环境(IDE)中生成实时、上下文相关的代码建议。它还可以帮助完成注释,这对于加快文档编写非常有用。
此外,作为亚马逊的产品,它还针对AWS进行了优化,为符合AWS最佳实践的AWS API提供代码建议(后面详细介绍)。
事实上,在进行产品预览阶段时,亚马逊发现使用CodeWhisperer的参与者完成任务的成功率提高了27%,速度比不使用CodeWhisperer的参与者提高了57%。哇,这是相当惊人的数据!
尽管如此,在接受建议之前审查所有代码建议是非常重要的,您还应准备好编辑代码,以确保它按照您的意图进行操作。记住,它是一个助手,不是替代品!
CodeWhisperer还非常注重代码安全性,内置的安全扫描器可以检测到难以发现的问题,包括全球开放应用程序安全项目(OWASP)的前10个问题。
目前,此功能仅适用于VS Code和JetBrains的IDE,适用于Python、Java和JavaScript,但我们相信它将会逐渐推广到更多的平台。
多语言支持
尽管CodeWhisperer无法像Copilot一样支持那么多语言,但它确实拥有功能强大的兼容语言范围,适用于一系列流行语言的开发者。
这包括支持Python、Java、JavaScript、TypeScript、C#、Rust、Go、Ruby、Scala、Kotlin、PHP、C、C++、Shell脚本和SQL等语言。
交互
通过分析自然语言代码注释或部分完成的代码块,CodeWhisperer可以智能推断和建议代码片段,帮助您完成任务,包括与您的编码风格相匹配的整个函数或逻辑块。
话虽如此,为了充分利用CodeWhisperer,您需要使用简短的注释,这些注释对应着小而离散的任务。同时,对于变量和函数命名,使用直观的命名规范也是至关重要的。不过,任何优秀的开发者都应该做到这一点!
由于与AWS的关联,CodeWhisperer的另一个很棒的功能是,您可以编写注释来寻求帮助,以创建与AWS API交互的代码。如果您对AWS或云计算不太熟悉,这非常有帮助。
兼容性
正如您可能期望的那样,CodeWhisperer与许多IDE兼容,包括JetBrains IDE(IntelliJ IDEA、PyCharm)、Visual Studio Code、AWS Cloud9、AWS Lambda控制台、JupyterLab和Amazon SageMaker Studio。
此外,如果您使用Python、JavaScript或Java IDE,您就可以访问到安全扫描。
训练数据
就像Copilot一样,Amazon CodeWhisperer是在数十亿行代码中进行训练的,包括公开可用和来自亚马逊的代码。
亚马逊的文档声称,这个人工智能引擎被设计为提供无偏向的定制代码建议,尽管像任何生成式人工智能一样,要实现这一点并不容易。
我们真正喜欢的一个特性是内置的引用追踪器,它会标记与开源训练数据密切匹配的代码建议。这使您可以直接使用代码,修改代码,或者甚至将其丢弃。
此外,您还可以稍后查看这些已标记的案例,以便添加许可证归属,非常适合避免代码抄袭!您还可以选择过滤CodeWhisperer确定与开源代码相似的所有代码建议,这是一个很好的功能。
数据安全
正如我们在讨论内置漏洞扫描器时提到的,CodeWhisperer非常重视数据安全。
因此,可以毫不奇怪地看到代码片段、注释和其他数据通过TLS传输,以确保IDE和CodeWhisperer之间进行安全通信。而且,与Copilot一样,CodeWhispereer确保了传输和静态数据的加密。
话虽如此,使用免费版本的个别用户应该知道,它们的代码片段和注释可能会被保留用于服务增强,当然您也可以选择不参与此类活动。
另一方面,专业用户在这里无需担心,因为这些数据既不会存储也不会用于训练或服务改进。然而,如果您还想避免回传的遥测数据收集,您要选择专业版层级进行退出。
个别用户与专业用户:哪个层级?
选择免费个别用户版或付费专业用户版的CodeWhisperer自然是个人选择。
话虽如此,无论您是专业开发人员、初学者,还是学生,了解两者之间的区别都是有意义的,所以让我们更详细地看一下。
CodeWhisperer个别用户版 |
CodeWhisperer专业用户版 |
价格:免费 |
价格:每用户每月19美元 |
主要功能:每月50个安全扫描,完全兼容AWS Toolkit for VS Code或JetBrains,使用Builder ID进行身份验证,支持所有语言进行代码生成,默认分享代码片段和遥测数据(您可以选择退出) |
高级功能:每月500个安全扫描,管理控件以管理访问和组织策略,使用AWS IAM Identity Center进行身份验证,不共享代码片段数据,遥测数据共享依然是选择退出 |
突出的特点:AWS支持
CodeWhisperer最引人注目的特点之一是它针对AWS开发进行了高度优化,包括实时代码建议,用于与AWS API开发。
但这究竟意味着什么呢?嗯,CodeWhisperer可以为使用Amazon EC2、AWS Lambda和Amazon S3等AWS API的代码提供建议,这对于当前在AWS上构建应用程序或计划在AWS上构建应用程序的人来说非常理想。
对于过去在构建AWS应用程序时,CodeWhisperer为AWS API提供的代码建议可以令我非常感兴趣!
无论您当前的云技能水平如何,这种支持都对您在代码中实施AWS最佳实践非常有帮助。
不过,请记住,这里的目标不是消除您理解如何使用AWS API编码的需求,而是为您的工作流增补和简化。话虽如此,如果您刚开始使用AWS服务,这也可以是一种辅助学习的方式。
Amazon CodeWhisperer 简介
CodeWhisperer 可以通过代码自动补全或注释解释来为整个函数或逻辑块提供实时的代码建议,以匹配您的编码风格。甚至还可以自动补全注释,加快文档编写速度!
此外,它还具备内置的安全功能,可以扫描您的代码中的漏洞,前提是您正在使用兼容的语言和 IDE。
我们还特别喜欢引用跟踪器,它会标记与开源训练数据非常相似的代码建议,让您避免抄袭或提供授权。
正如您所期望的那样,CodeWhisperer 支持最流行的编程语言,包括 Python、Java、C++ 等,并与常见的 IDE(如 Visual Studio Code、JetBrains IDE 套件、AWS Cloud9 等)集成。
CodeWhisperer 还为数据提供隐私和加密保护,专业版甚至不会在服务器上存储内容。不过,您需要选择付费个人版才能获得相同级别的数据保护。
另外,作为亚马逊的产品,CodeWhisperer 还针对 AWS 进行了优化,包括对 AWS API 的建议。
GitHub Copilot vs Amazon CodeWhisperer
如果你已经看到这里,你应该了解了这些 AI 编码助手的关键细节,但你应该选择哪一个呢?
嗯,当选择最好的 AI 编码助手时,我们喜欢比较关键的标准。让我们深入了解一下它们之间的主要区别,看看是否有什么可以倾斜天平的因素!
指标 |
GitHub Copilot |
Amazon CodeWhisperer |
语言支持 |
优化支持 Python、JavaScript、TypeScript、Ruby、Go、C# 和 C++,但可以为任何具有公共 GitHub 存储库的语言生成代码。 |
支持 Python、Java、JavaScript、TypeScript、C#、Rust、Go、Ruby、Scala、Kotlin、PHP、C、C++、Shell 脚本和 SQL。 |
IDE 支持 |
与 Visual Studio Code、Visual Studio、JetBrains IDE、Vim、Neovim 和 Azure Data Studio 集成。 |
兼容 JetBrains IDE、Visual Studio Code、AWS Cloud9、AWS Lambda 控制台、JupyterLab 和 Amazon SageMaker Studio。 |
定价 |
个人计划每月 10 美元或每年 100 美元,商业计划每月每用户 19 美元。 |
个人计划免费,专业计划每月每用户 19 美元。 |
安全和隐私 |
采用 TLS 进行安全数据传输,加密数据在传输和静态时,个人用户数据可以保留,但您可以选择退出或请求删除。商业用户数据不保留。 |
采用 TLS 进行安全数据传输,加密数据在传输和静态时,个人用户数据可以保留,但您可以选择退出。专业用户数据不保留。 |
突出特点 |
GitHub Copilot 聊天(测试版) |
AWS 代码建议和安全扫描 |
正如您所看到的,它们之间的差别不大!
在定价方面,只有 CodeWhisperer 是完全免费的,而 Copilot 只为学生和教育工作者提供免费版本。
然而,它们的专业计划价格是相同的,所以在这方面没有什么区别。
这就导致一个重要的观点,选择最适合您的开发需求的选项总是更明智的。
例如,对于不受 CodeWhisperer 支持的小众语言,Copilot 是更好的选择,前提是它在 GitHub 仓库生态系统中存在。
同样,如果你计划在AWS上开发应用程序,那么CodeWhisperer就是显而易见的选择,因为它提供了对AWS API的编码建议。
而这自然引出了主要的差异化点-突出的功能。
从这个角度来看。如果您不需要AWS支持,并且愿意付费订阅,Copilot可能具有优势,因为它具有ChatGPT样式的聊天机器人,您可以在IDE内使用它提问。
另一方面,如果您不想为Copilot个人计划付费来获得此功能,您可以免费使用CodeWhisperer。然后,您每月还可以获得额外的50个安全扫描,以检查您的代码是否存在漏洞(尽管这取决于编程语言和IDE)。
底线是,如果您使用任何主流编程语言,并且正在寻找通用的AI编码助手功能,任何选择都会很棒!
我们还建议您尝试两者以确定您更喜欢哪种用户体验。我们还认为,将它们用于相同的编码任务,并查看哪种工具为您的开发风格提供了更准确的建议,是一种很好的主意。
请记住,这些工具都不会100%准确,但您可能会发现有一个工具对您的开发领域具有更高的准确性评级。
毫无疑问,目前Copilot更受欢迎,但这很可能是因为它更早面市的原因。但随着越来越多的开发人员期望在未来使用AI工具,我们对其发展的进展非常感兴趣。
根据我个人的经验,构建AWS应用程序时,我会对CodeWhisperer针对AWS API的代码建议感到好奇,也许这将成为Copilot用户转换的主要动因之一。
总结
我们现在已经探讨了GitHub Copilot和Amazon CodeWhisper的问题,帮助您确定哪个是您在2023年最佳的AI编码助手。
如果你想要TL-DR,它们都是非常出色的AI编码助手,具有许多相同的强大功能,但最终的决定真的需要根据您的开发风格、预算、首选语言和最重要的功能来决定。
虽然GitHub Copilot目前是开发者最受欢迎的选择,但事实并不简单。
如果你想要完全免费的选择,CodeWhisperer是最好的选择。另一方面,如果你想要聊天机器人功能,你需要选择GitHub Copilot。同样,如果你想要开发AWS应用程序,再次,CodeWhisperer是最合理的选择。
你可以看出这是怎么回事!正确的选择取决于你的需求。
最终,如果您使用流行的编程语言并且希望获得AI编码助手的常规功能,则任何选项都将是您工作流程的很好补充。然而,我们认为重要的是尝试两者,看看哪个真正引起共鸣。
无论您选择哪个AI编码助手来增加您的工作流程,我们希望您会觉得这篇文章有帮助。
Happy coding!
您是新手开发人员,准备使用AI编码助手作为个人导师吗?请查看:
常见问题解答
1. 什么是AI编码助手?
AI编码助手是一种由人工智能驱动的工具,旨在帮助您编写、审核、调试和优化代码。AI编码助手也是AI开发工具的更大范畴的子集。
2. AI会取代程序员吗?
在我们的观点中,AI不会取代程序员,而是将继续成为开发者需要与之和谐共事的最重要的技术之一。
这包括使用AI编码助手来提高生产力,并为超出AI范围的复杂编程挑战腾出时间。也就是说,AI的民主化意味着程序员需要努力发展自己的技能以保持竞争力。
3. 哪个是最好的AI编码助手?
这取决于几个因素,例如您偏爱的编码语言、喜欢的集成开发环境(IDE)以及数据隐私要求。如果您正在寻找目前最受欢迎的人工智能助手,那可能是 GitHib CoPilot,但我们强烈推荐考虑 CodeWhisperer。
人们也在阅读:
Leave a Reply