At AWS re:Invent in Las Vegas, the cloud concern introduced a bunch of features for Q Developer, its AI coding assistant – they include unit testing, transforming .NET Framework applications to modern .NET, troubleshooting operational issues, and assisting migration of VMware and mainframe applications.
Another new feature is integration with GitLab Duo, though according to the documentation this is limited to “GitLab self-managed with the Ultimate tier subscription.”
Q Developer began as an add-in for IDEs from Microsoft and JetBrains, and can also be used from the Mac command line and in the AWS management console.
The unit test agent can generate tests for a specific function, or for all functions in a file. This feature is generally available for VS Code and JetBrains IDEs, and in preview for GitLab Duo.
A documentation agent can create or update a readme file and generate data flow diagrams. The code review agent can find performance and security issues, and also generate fixes.
Code review in this context includes aspects such as “code smells, anti-patterns, naming convention violations, potential bugs, logical errors, code duplication, poor documentation and security vulnerabilities, as well as AWS best practices across your IDE or GitLab repository,” according to the AWS post on the subject.
Another new feature is operational troubleshooting. Q Developer can analyze CloudWatch and CloudTrail logs, summarize incidents and suggest remediations.
AWS always seems keen to migrate its customers away from Windows. “Customers would love an easy button to get off Windows … they definitely hate onerous license costs,” observed AWS CEO Matt Garman in his keynote today. This may be the motivation for the new transform capability, whereby Q Developer will attempt to migrate an application from the Windows-only .NET Framework to modern .NET Core, which can be hosted on Linux. There are also performance and security benefits, as .NET Framework has been near-frozen for some time. Q Developer already has a Java transformation feature, for migrating from Java 8 and 11 to Java 17.
This is not the first .NET Framework migration tool from AWS. There has been an open source AWS porting assistant since 2020 – but that was from a simpler time, before the AI era.
Q Developer will also have the capability to assist migrating applications from VMware virtual machines to cloud native architectures, and mainframe applications such as those written in COBOL. Regarding mainframe migration, Garman conceded that it is “not one-click yet” but that a multi-year effort might be reduced by 50 percent. “Most mainframe code is not well documented,” Garman noted, claiming that Q Developer can assist by automatically writing documentation.
Fully automated migration of .NET Framework applications is also unlikely. These applications may rely on Windows-only libraries or specific features of the Windows API that do not exist on Linux. There is potential for accelerating migration by automating what can be automated, and using AI to suggest alternatives to aspects that cannot be migrated directly.
Are there risks in too much AI – particularly in cases where, for example, AI generates code, reviews it, and creates unit tests, thereby testing its own work? “All we are doing is removing some of the manual steps and mundane tasks,” Srini Iragavarapu, drector of generative AI applications and developer experiences, told DevClass. “It is not really removing the human in the loop, it is actually augmenting me as a developer with more functionality.”
There is also the possibility of practising test-driven development – where the developer writes the test and uses AI to generate the code to be tested. This capability already exists, Iragavarapu told us. Perhaps it is a more reliable approach.
What about the operational capabilities – does it overlap with what third-party observability tools can do? “It is a generative AI layer that summarizes an issue and potential remediations on top of some of the tools that you’re talking about,” Iragavarapu noted. In other words, with a suitable integration, Q Developer might assist in interpreting data from observability tools.