Unlocking the Power of AWS Q Developer: The Ultimate AI Tool for Coding?
So, let's move on to the last AI code tool I want to focus on: AWS CodeWhisperer. Wait, now it's called AWS Q Developer, but there's also AWS Q?!
AWS seems to have a branding issue, but let's not dwell on that.
Why GitHub, Sourcegraph, and AWS?
I see enterprise companies partnering with these three companies for AI coding. GitHub is the obvious choice because its Copilot is synonymous with AI and coding. Sourcegraph, with Cody, is already used for enterprise search within companies, giving it a stable customer foundation to build. Thanks to its cloud offerings, AWS has a large customer base that can be upsold with GenAI.
AWS Q Developer
Ok, but what is AWS Q and what are the differences? There is a short overview here Generative AI Powered Assistant - Amazon Q - AWS. Today, we will focus on AWS Q Developer, Amazon's coding AI tool. AWS Q Business is more comparable to Microsoft Copilot.
To access AWS Q Developer, you can create an AWS Builder ID to try it out. A couple of highlights:
IDE support for the most popular IDEs (VS Code, JetBrains IDEs, and Visual Studio)
Many supported languages (similar to others)
The most significant advantage is if you use AWS as your cloud provider, it connects with your resources, allowing you to ask questions about them.
Where Does It Excel?
Amazon, with AWS, is the biggest cloud provider out there, period. Even though it lost a couple of percentage points to Microsoft in the last year, it is still the biggest (https://x.com/ttunguz/status/1783941512159776840). An AI tool that can help you with your code and interlinks with your deployments on AWS is a big plus for a business solely relying on AWS.
What are the issues?
I can see two issue groups with Q in its current form. Some are speculative, and some are factual.
Let's focus first on the facts. What model is behind AWS Q? It is not entirely clear. I was not able to find that out. If you have more information, please write me or leave a comment. Why is this an issue? We know that GitHub uses models from OpenAI, and Cody can switch models. Knowing the model gives you an idea about speed, accuracy, and other factors. There are some hints that they use their own models (see Post | LinkedIn). Those numbers look good, but this post is biased as it is from an AWS employee. Never trust a benchmark from a biased source, especially for LLMs.
Currently, Amazon Q Developer offers minimal capability to take context from your code base. Yes, it will understand what you see in your IDE until the context window is full, but it cannot offer more context with embeddings or an RAG-like system. The only feature they offer is Amazon Q Customization (Customizing suggestions - Amazon Q Developer), which is still in preview. It is only supported for inline code suggestions within the IDE (no chat) and only works for Java, JavaScript, Python, or TypeScript. So, if you use Go, Rust, or C#, you cannot use it at all currently.
But why is this so important? Most enterprise companies are large and have many custom frameworks. These frameworks allow for business-specific needs but are often more complex, more challenging to maintain, and lack documentation. An AI that can take context from multiple repositories could greatly benefit your engineers, allowing for faster onboarding and easier usage of internal frameworks within enterprise applications.
Okay, let's go to the speculative issues I see with AWS.
AWS is lagging behind in the LLM space. This is evident in AWS's loss of customer numbers and a general sentiment where AI and LLM are associated with OpenAI (Microsoft), Anthropic, Meta, Google, and Mistral. This creates an issue for AWS, as it is seen not as an LLM model creator but more as a universal LLM API (AWS Bedrock). This becomes even more apparent with two issues that have also made the news.
Alexa (https://fortune.com/2024/06/12/amazon-insiders-why-new-alexa-llm-generative-ai-conversational-chatbot-missing-in-action/, https://www.mihaileric.com/posts/how-alexa-dropped-the-ball-conversational-ai/) would be the perfect platform for an LLM, but it has failed to deliver so far. The competition seems to be faster, which is mind-blowing when you read the articles. The data and knowledge were there to take the next step.
The change in AWS CEO was maybe due to the perception that it is chasing competitors from behind regarding generative AI (Amazon AWS CEO Adam Selipsky is out | Fortune).
Another speculative issue I see is the rise of CodeCatalyst, a direct competitor to GitHub. CodeCatalyst offers a complete development platform similar to GitHub's, but on Amazon. It also include features like GitHub Copilot, such as AI agents automatically fixing issues and filling out Pull Request information. However, since it is a new product, customers would need to invest heavily in a transition project to move to CodeCatalyst. So far, no one has been able to dethrone GitHub as the top development platform. So why invest if you go to one platform that you go to CodeCatalyst and Q? It only makes sense if your whole cloud environment is also on AWS.
All those issues might not impact the long-term success of AWS Q. AWS still has a strong offering, and with its big customer base, it is easy for them to bring CodeCatalyst and Q to a large audience, making it hard for their competition to have a chance, even if their offering is better.
Personal Experience
My experience with Q is similar to Copilot, with some tests on a few items highlighted here.
Autocomplete (code and tests)
Very fast autocompletion, but there are still bugs within the UI of Visual Studio Code. During testing, I couldn't cycle through different suggestions.
Help me fix a bug
Not much to say here. It is an LLM, so it helps you, but it has the same communication issues as every other LLM and it lacks context of custom frameworks.
Create documentation, commit messages, or pull requests
As usual, it is very good here but can create a lot of unnecessary wording. It's comparable to GitHub Copilot. For full power you need to use CodeCatalyst.
Create a new project
Very similar experience to GitHub Copilot.
Conclusion
Okay, so AWS Q Developer, formerly known as Code Whisperer, is a solid tool for AI code assistance and generation. It still has some challenges compared to others, but it has a strong portfolio, especially if you are an AWS customer with your infrastructure on the AWS cloud. If you are running multi-cloud, have multiple code hosts, a lot of internal frameworks, and a wide variety of languages, I would generally go with another vendor that supports those items out of the box.
In the next section, I will focus on AI's general promise in code generation, what has proven true in hindsight, and where we are still lagging behind the initial hype.