At its re:Mars conference, Amazon today announced the launch of CodeWhisperer, an AI pair programming tool similar to GitHub’s Copilot that can autocomplete entire functions based on only a comment or a few keystrokes. The company trained the system, which currently supports Java, JavaScript and Python, on billions of lines of publicly available open source code and its own codebase, as well as publicly available documentation and code on public forums.
It’s now available in preview as part of the AWS IDE Toolkit, which means developers can immediately use it right inside their preferred IDEs, including Visual Studio Code, IntelliJ IDEA, PyCharm, WebStorm and Amazon’s own AWS Cloud 9. Support for the AWS Lambda Console is also coming soon.
Ahead of today’s announcement, Vasi Philomin, Amazon’s VP in charge of its AI services, stressed that the company didn’t simply create this in order to offer a copy of Copilot. He noted that with CodeGuru, its AI code reviewer and performance profiler, and DevOps Guru, its tool for finding operation issues, the company laid the groundwork for today’s launch quite a few years ago.
“I think the technology is at a point where we thought it was the right time to do it,” Philomin said. “And it fits nicely with the other pieces that they have. It’s been a journey and we’ve just done different parts at different times.”
Internally, Amazon has been testing the service with only a small number of developers — mostly in order to keep the announcement under wraps.
The company notes that the system continuously examines your code and comments and even takes your own coding style and variable names into account. Using this contextual information — and where your cursor is — it’ll then generate its own custom code snippets.
It’s worth noting that CodeWhisperer does some things different from the likes of Copilot. For one, while most of the code that the system generates is novel, every time it generates code that is close to an existing snippet in its training data, it will note that and highlight the license of that original function. It’s then up to the developer to decide whether to use it or not. This should alleviate some (though maybe not all) of the copyright concerns that maybe come with using a tool like this.
Another factor Philomin stressed is security. Based on Amazon’s own experience managing large codebases and doing debriefs after things go awry (using its formalized “correction of errors” process), as well as its experience with CodeGuru, CodeWhisperer will scan the code for potential security issues.
“Security is always important in AWS and so we want to make sure that the code we generate is secure,” Philomin said. “Now obviously we’ve generated the code and the developer can change it — and so CodeWhisperer has the capability to say: run a scan on the current source file. It will … scan and … tell you any issues and security vulnerabilities either in the generated or the changed code.”
Philomin also stressed that the team worked hard to ensure that the code that CodeWhisperer generates doesn’t generate any biased code either. When it does, though, the team has implemented filters to automatically remove that code.
The actual user/developer experience is pretty straightforward. Developers can choose between different code suggestions (in the demo I saw, there were usually at least two options). It can autocomplete comments and just based on those comments, it will suggest functions. A simple example for this would be something like #See if a number is prime.
While the system will work just fine for developers outside of the AWS ecosystem, Philomin noted that the team took great care to ensure that it will work very well for developers who want to use it to access AWS services (think #Create an S3 bucket).
“When we say it has first-class support for AWS API, it’s only additional stuff. In terms of all of our measurements and all of our testing, we find it works remarkably well and it’ll be state-of-the-art,” he said. Since developers can now test the service, we’ll likely soon hear about how well it works and how it compares to projects like Copilot. If anything, though, having more choice in this space is great (and somebody is surely going to hack up a project that will automatically provide suggestions from multiple pair programming AIs).