AWS CodeWhisperer vs Copilot: Features and Issues

Pieces 🌟 - Mar 27 - - Dev Community

Given the existence of “the first AI software engineer,” it is increasingly important that developers use an AI assistant to be more productive. The increase in productivity can come from (1) cleaner, more maintainable code with fewer errors, (2) automating repetitive tasks such as writing boilerplate and code completion, (3) offering suggestions and variations of existing code, (4) retrieving desired information from your previous workflow, and other types of intelligent assistance.

However, AI output needs to be checked for accuracy and not trusted unless reviewed by a human. For example, various AI systems have invented variables that do not exist in reality, explained hallucinated policies to customers, and opened code to security vulnerabilities. In the legal system, an AI has supported false facts with imaginary sources.

Consequently, it is crucial to consider carefully when choosing your AI assistant. This post discusses the three best choices for a developer’s AI copilot, and compares their features and issues. The copilots are GitHub Copilot vs Amazon CodeWhisperer, and those are compared with a third alternative, Pieces for Developers.

GitHub Copilot Features and Issues

After a year of technical preview, GitHub Copilot was released for individual developers on a monthly subscription basis in June 2022. It uses Open AI’s Codex LLM, which was derived from GPT-3. Codex is specialized to translate natural language into code.

Microsoft bought GitHub for $7.5 billion in stock in June 2018, and Microsoft collaborated with OpenAI to create GitHub Copilot before the Codex LLM was publicly released. GitHub provided an immense code database for training Copilot’s AI model, and Azure is an immensely scalable cloud environment that supports Copilot.

In March of last year (2023), GitHub Copilot evolved to GitHub Copilot X as a “readily accessible AI assistant throughout the entire development lifecycle.” This was achieved by integrating it into Visual Studio and VS Code. It also supports Vim, Neovim, the JetBrains suite of IDEs, and Azure Data Studio. Some of the GitHub Copilots experimental features ended December 15, 2023, and others, such as Workspaces, are ongoing.

The intent of Workspaces is to guide a developer from initial idea to production and beyond. It combines GPT-4 with the available relevant codebase to provide better information during the entire development lifecycle process.

Earlier this year (February 27, 2024), GitHub Enterprise was introduced to developers as “a copilot that is customized to their own organization’s code and processes.” The GitHub Blog describes the “three core features” of the GitHub Copilot Enterprise release.

  1. The first core feature is the set of standard copilot features. It generates summaries of code and makes real-time suggestions to explain and improve code. At this time, there is an unanswered question about the context used by the Copilot. When a developer had two projects open in JetBrains Webstorm, it used both projects as a basis for its suggestions.
  2. The second core feature is the direct integration of chat into GitHub.com. This allows developers to query their organization’s codebase in natural language and to be guided to relevant code or documentation that might answer a question.
  3. The third core feature is faster review and integration of pull request results into code. The Copilot summarizes pull requests and analyzes pull request diffs, which is useful to developers who review pull requests.

The GitHub Blog explicitly states the vision for evolving GitHub Copilot is focused on AI integration for GitHub. I noticed that GitHub Copilot Enterprise has the integration of Microsoft’s Bing search into chat in beta. It does not mention using a code snippet as an example to find similar snippets, which is a search that can be done in Pieces.

The Copilot’s AI model is not trained on any of an organization’s information unless it is introduced by organizational request. For example, GitHub Copilot can use a custom AI model and it can be fine-tuned for esoteric languages, such as Verilog for hardware design.

A study of the simpler GitHub Copilot provides strong evidence for the benefits of using it. A major enterprise surveyed 450 of its Copilot users for their Activity, Productivity, Efficiency, and Satisfaction in using it. All eight data values in the results were highly positive. Five were in the range of 90%-96%. Developers retained 88% of the suggested code, there was an 84% increase in successful builds, and 50% did more builds.

Thus, it is very clear that developers’ use of even the simplest auto-completion copilot is highly beneficial. The benefits increase with more intelligent copilots, especially when the copilots are designed with the developers’ specific use cases in mind. More advanced copilots understand and make suggestions relevant to regulations, policies, standard practices, and personal preferences.

For security, data is encrypted. However, it is accessible to Microsoft and GitHub personnel, especially the data belonging to individuals. Individuals can turn off retention of prompts and suggestions, and they are not saved when on a business plan.

There is a lot of community support at various levels of expertise. This can be especially useful for students and developers new to coding in a language, who have questions that go beyond interactions with the AI itself.

The AWS Copilot Competitor

Amazon launched the AWS CodeWhisperer into technical preview in June 2022, within hours after GitHub Copilot was publicly launched. Now, the two frequently compared copilots are Amazon CodeWhisperer vs GitHub Copilot.

CodeWhisperer is a direct challenge to Microsoft's GitHub Copilot, especially for developers whose work involves the AWS environment. It was trained on billions of lines of code and, according to Amazon, it continues to train on “open source repositories, internal Amazon repositories, API documentation, and forums.”

CodeWhisperer uses the developer’s current context to make suggestions, including four primary sources: (1) the current location of the cursor in a body of code, (2) the code that comes before the cursor, (3) any available comments, and (4) the code it finds in other files in the same project.

Like Microsoft focuses GitHub Copilot on GitHub, Amazon focuses CodeWhisperer on AWS. It writes code for accessing AWS’s services that conforms to the AWS best practices. For example, it offers suggestions for APIs such as Amazon EC2, AWS Lambda, and Amazon S3.

There is also a reference tracker that flags code that may have plagiarism issues with open-source code. There is a filter that can be turned on to keep this code out of the code suggested by the AI.

Like GitHub Copilot, business data is not stored or used by Amazon, but individuals have to opt out of their data being stored.

The biggest general differentiator in AWS CodeWhisperer vs GitHub Copilot is the support for the AWS environment. This is a tremendous help, especially if you need to access AWS services but not often enough to have the code memorized.

Pieces for Developers

The team that created Pieces for Developers has and will continue to have a very different focus than Amazon and Microsoft. The company’s sole focus is identifying and satisfying the needs of developers. It is backed by some of the world’s best investors, and it is secure and continuing to grow.

In 2022, the Pieces team set out to build the most advanced code snippet management and workflow context platform. It would use AI to augment and streamline a developer’s workflow and have an on-device personal mini-repository that stores the materials written and used by a developer. The goal was (and still is) to save the developer’s time while decreasing stress and helping the developer be more productive.

The Pieces Suite, which is free to individuals, became a “tool-between-tools” that integrates three major workflow processes: (1) researching and problem-solving in the browser; (2) writing, reviewing, referencing, and reusing code in the IDE; and (3) working with colleagues in collaborative environments such as Microsoft Teams.

Pieces saves reusable and valuable code from the browser, the IDE, and directly from teammates when shared in Teams. These pieces of code are stored with intelligently enriched titles, explanations, tags, user annotations, and 15+ other enrichments. A developer saves countless hours because it is easy to find the right snippet, understand the appropriate context, and then plug it into the code.

In summary, Pieces for Developers brings your tools to one place with all necessary capabilities like saving code, searching for it when it matters, reusing it seamlessly, and sharing it with one click! See how Pieces compares as a GitHub Copilot alternative.

GitHub Copilot vs AWS CodeWhisperer vs Pieces

When comparing GitHub Copilot vs CodeWhisperer, both AI code generation tools are excellent. However, their code-snippet capabilities are much less than those already provided by Pieces’ fundamental focus on workflow.

Pieces for Developers includes the desktop mini-repository with any, some, or all of Pieces integrations for browsers (Chrome, Edge, Firefox), IDEs (VS Code, JetBrains IDEs, JupyterLab, Azure Data Studio, Obsidian), and collaborative environments (Microsoft Teams). Others are in process and will be released soon.

Compare the following list of ten feature categories with the features of any copilot you are considering. Then, If you are an individual developer, remind yourself that all the features included in all of Pieces are free.

  1. Manage Your Resources. Keep track of snippets, screenshots, and workflow context in an on-device AI hub for developer materials.
  2. Instantly Enriched. Benefit from AI-powered enrichment providing titles, descriptions, tags, documentation links, relevant collaborators, and so much more.
  3. Your Personal Google (Offline & Online). Find the materials you need with a lightning-fast search experience that lets you query by natural language, code, tags, and other semantics, depending on your preference.
  4. Your Personal Copilot. Ask the Pieces Copilot to generate code, connect you with teammates, or summarize what you worked on yesterday. It can run entirely offline and on-device, and it understands text, images, videos, and even entire local directories. It also can access the repository for anything you saved to Pieces while in a browser, IDE, or collaborative environment like Teams.
  5. Easier to Share. Maintain invaluable context (such as people’s names) for your shared resources when collaborating with teammates, writing technical documentation, or publishing tutorial videos with custom shareable links.
  6. Smart Transforms. Transform your snippets in a single click to improve readability, formatting, or runtime performance. You can even translate a snippet to your preferred programming language or convert it to boilerplate.
  7. Workflow Backtracking. Easily pick up where you left off by revisiting what you searched, copied, saved, shared, referenced, and more because you have a chronological compass capturing the "when" and "where" of your workflow.
  8. Code from Screenshots. Pieces upgrades screenshots with OCR and its AI extracts code and repairs invalid characters, which results in extremely accurate code extraction and deep metadata enrichment.
  9. Persistent Conversations. Move seamlessly from browser to IDE to Teams in any sequence without breaking your connection to your AI assistant.
  10. Support and Updates. Check what support is offered through what channels and how quickly issues are resolved and updates are released.

Conclusion: CodeWhisperer vs Copilot

Other copilots are sometimes included in comparisons, such as GitHub Copilot vs ChatGPT vs Tabnine. I did include Tabnine in a previous low-level comparison of copilot features, but it was too limited to include in this post. One limitation is that it is not integrated into any browsers, but GitHub Copilot vs AWS CodeWhisperer also have that limitation.

When choosing an AI coding assistant, the primary considerations are development environment, development/coding style, preferred language(s), budget, and, if any, your specific needs. If you need a copilot that is tied to the Azure or AWS environment, then your optimal choice will be the copilot designed for that environment.

When not bound to an environment, Pieces would probably be your optimal choice. With its advanced features and focus on the overall workflow, it would probably give you the greatest increase in productivity and it is free (to individuals). If doubting which to choose, I suggest using the list of feature categories in the previous section as the checklist for comparisons.

Get started with Pieces for free today!

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .