Vole first previewed the IntelliCode tech last year and in April, launched it as an optional extension in Visual Studio 2019 for Windows and Mac.
Now, according to VentureBeat Vole has got IntelliCode’s capabilities are now generally available for C# and XAML in Visual Studio 2019 and Java, JavaScript, TypeScript, and Python in Visual Studio Code. Microsoft now includes IntelliCode by default in Visual Studio 2019.
When it comes to using AI to aid developers, the company wants to help at every step of the way, according to Amanda Silver, a director of Microsoft’s developer division.
“If you look at the entire application developer lifecycle, from code review to testing to continuous integration, and so on, there are opportunities at every single stage for machine learning to help,” Silver told VentureBeat.
“IntelliCode is, very broadly, the notion that we want to take artificial intelligence — and machine learning techniques — and allow that to make developers and development teams more productive. “IntelliCode is only at the early stages — authoring and helping to focus code reviews. But over time, we think that we can apply it to the entire application developer lifecycle.”
IntelliCode comprises statement completion, which uses a machine learning model, and style inference, which is more of a heuristic model.
Code completion is an “enhanced IntelliSense.” Style inference is less complicated, but still very important — Silver says about 25 per cent of the comments on pull requests reviews is style-based.
“The other smart that we have is about style inference. In that case, that’s a combination of a bunch of different machine learning approaches and heuristic approaches. And that looks for patterns in your code styles to determine what to apply. That’s a lot less of a deep learning model, ” she said.
Microsoft trains a base model on public code repositories and (optionally) a custom model based on the developer’s code repositories to find patterns in API usage. “As of May 2019, IntelliCode uses over 14,000 total repositories to cover our six languages (C#, C++, JavaScript/TypeScript, Java, Python, and XAML),” Silver said. “But we often add new public open source repositories to refine and improve our model’s coverage and precision.”
Microsoft has toyed with early IntelliCode prototypes that help find bugs. It found that the way it phrased the identification of a bug to a user can change the way that they react to it.
Developers are trained to respond to discrete responses from the machine. They expect things to be true or false. We found a bug, or we haven't found a bug. But what's uncomfortable, and I think we need to figure out how to navigate, is probabilistic results in our analysis.”