Visual Studio Live! Keynote: Artificial Intelligence Makes Visual Studio Smarter
Microsoft's Visual Studio team has long made each release of the IDE faster, more functional, less buggy and so on, but now, with the help of artificial intelligence and machine learning, it's actually getting smarter.
That was a main takeaway from today's keynote session at Visual Studio Live! in Chicago, where Microsoft's Amanda Silver detailed the latest enhancements to the IDE and what's coming soon.
The Director of Program Management for Developer Tools featured AI and ML throughout her presentation -- titled "The Present and Not Too Distant Future of Visual Studio" -- which covered advancements in personal productivity, IntelliCode, DevOps and more.
"Our mission with Visual Studio is really to provide the best-in-class tools for any developer building any kind of app," Silver told the jam-packed VSLive! audience in Chicago on day two of the weeklong event. "Today, Visual Studio stands for a ton more. The core of the vision is any developer, any app on any platform."
Silver classified herself as both an anthropologist -- as she works to figure out what tools developers are using to build apps, what's working well and what's working not so well -- as well as a craftsman, always trying to make the tools better.
"So whether you're doing development for Windows, or Web or Linux or Android or iOS, all of the tools kind of come together and just sing."
Amanda Silver, Director of Program Management for Developer Tools, Microsoft
She noted the VS team has expanded the IDE to cover more platforms in the past few years, such as Xamarin, bringing .NET to iOS and Android development.
"So whether you're doing development for Windows, or Web or Linux or Android or iOS, all of the tools kind of come together and just sing," she said.
Here's a recap of Silver's presentation on the latest and greatest presently in and coming soon to your favorite IDE.
As part of its expansion to other platforms, Visual Studio is also embracing other languages that weren't born in the .NET world, with C++ and Python being especially popular, according to research.
Silver demonstrated the IDE's support for non-.NET languages in a live C++ project that also featured Python files and actually allowed for native Python debugging. She noted that Visual Studio developers have an option that can be checked off to provide mixed-mode debugging. One of the benefits of using a scripted language on top of a native application, Silver noted, was the ability to automate the native app without having to stop the workflow and manually change things around.
In her debugging demo, she highlighted the ability in newer versions of Visual Studio to provide a mixed-mode call stack, containing both native C++ and Python code.
"If you're developing in Visual Studio but you need to do something that is other than .NET, we actually have great support for Python, for C++ and a whole bunch of other things inside of Visual Studio," she concluded.
"Machine learning is incredibly useful across a whole bunch of different domains," Silver said, naming manufacturing, retail and scientific research as just a few examples.
"And it can help you classify things that previously only a human could do. It can help perform analysis, understand how things might change over time -- the weather for example -- and it can identify patterns that you might not be able to see with your naked eye. Machine learning is the opportunity to really elevate our humanity, [so] that we have to only focus on things that only a human can do."
Helping to do that in the Visual Studio world is ML.NET, the company's open source and cross-platform machine learning framework that's also being used to make the IDE better.
Silver noted that the ML.NET repository contains three samples demonstrating movie recommendations, image classification and code issue classification. The latter allows for the automated routing of issues reported in open source repositories, making sure they go to the right location.
ML.NET can be used in several different ways, she said, including direct consumption of Azure Cognitive Services APIs. Those services can provide pre-built ML models, and developers can also build their own models. ML.NET will prepare the data for those models, build models and train the, and run them. "You guys don't have to become master mathematicians," Silver told the VSLive! audience.
Silver presented a live demo for classifying GitHub issues being reported, automatically routing a new issue and labeling it based on the contents of the repository provided. The demo explained how ML can be put to use to automate various tasks that previously had to be done manually.
Silver used the familiar Smart Hotels demo application to highlight advances in personal productivity, including much faster unit testing.
Silver showcased live unit testing, in which tests can run in the background as a developer changes code. "It's going to give you the results of those tests as you change your code," she said.
Other productivity improvements included Test Explorer, which enables fast test discovery and a hierarchy view that can sort tests by namespace, class and more so developers can quickly see all the tests embedded in an app and run them to easily identify tests that are taking a long time to execute, and more.
New functionality also allows navigation into decompiled assemblies, suggested variable names, CamelCase matching and even more.
In the demo, AI and ML were once again showcased.
One way they're used is to boost productivity -- so developers don't have to focus on minute details -- through smarter IntelliSense completion lists. For example, those lists help find the most appropriate API a developer may want to use, such as a length API for a string variable. What's more, AI and ML are being put to use to continually make those code completion lists even smarter by incorporating the context of the code being written. When the types of variable in the previous code changes, Silver demonstrated, the ordering of the suggested APIs changed on the fly to provide other APIs, such as trim or split. The AI-assisted items provided in IntelliSense code completion lists are marked by stars so developers can see how AI is helping them out.
"It's actually learning from the code that you're writing previously in the application to figure out how the model should be applied," Silver said. "It's making IntelliSense even better than it was previously."
Silver noted how continual performance improvements are baked into each new VS release, reminding the audience how important it is to keep up with new versions to benefit from the constant enhancements.
She highlighted improvements in solution load times, month session crash rates, better C++ scenarios for solution openings, memory usage and more. They're all getting "better and better," Silver said."
One service that most obviously benefits from artificial intelligence and machine learning is IntelliCode, Microsoft's AI-assisted development service introduced earlier this year.
Along with providing smarter IntelliSense code completion suggestions based on machine learning models, Microsoft's IntelliCode service can do much more
"We also have the ability to detect new issues, new classes of issues in your code that were previously undetectable by static analysis, based on machine learning algorithms that we've come up with," Silver explained. The service examines both large Microsoft code repositories and public repositories to find new classes of errors that compilers and static analyzers can't detect.
IntelliCode is also being put to use to improve the code review process. "Code reviews actually is one of the most painful thing that developers do today," said Silver, who went on to explain how the process terrifies junior developers because they know submitting their code for review will result in "reams and reams" of issues.
Senior developers don't like code reviews either, she said, because they're exhausting, time-consuming and overwhelming, leaving them confused on where to focus. To help with that, IntelliCode is being used to identify which code reviews are most risky, helping senior developers focus their efforts. It also can automate parts of the early code review process so senior developers can focus on code logic and semantic meaning rather than issues that compilers or other machines can detect.
Visual Studio Live Share
Silver explained that research still points to collaboration as a major pain point among developers. She herself interviewed dev leaders who indicated it was so hard to collaborate with developers who might even be in another room that they were unwilling to hire new coders if that would require an expansion of the facilities.
That pain was related to locating a developer in another room, Silver emphasized, let alone another location across the country in a different time zone or different country altogether.
"People are finding this so painful that they are limiting whether or not they expand the size of their team, because of collaboration," she repeated.
To help alleviate that developer pain, Microsoft has come out with Visual Studio Live Share, which was actually introduced last year.
Silver dove into another demo to show how Live Share enables collaboration with the Smart Hotels app, detailing how a developer on one machine can join a Live Share session and examine source code on another machine that might be in China.
In addition to just text-based functionality such as seeing source code, Live Share provides IntelliSense functionality and more, such as language services and test execution.
"I'm actually getting IntelliSense, the language service that's on this machine is actually powering my edit on this machine, right, so I get the full experience," Silver said during the Live Share demo.
The service also lets developers share servers, so a developer could open a localhost on a guest machine, and also debug across both machines, ideal for a senior developer helping out a junior developer.
Silver also demonstrated the ability to create and consume pull requests tests directly from Visual Studio, functionality that now works with Visual Studio Team Services and will also support GitHub in the near future.
And, yet again, artificial intelligence was featured in the demo.
"I had mentioned earlier that we are working on AI to discover new errors, Silver said. "You can see right here that we have an IntelliCode error that says, 'did you mean to use that variable instead of this variable.' This is actually a bot, and this is a new category of errors that our AI can discover in your code. This is based on the code flow analysis and it's saying, 'hey, you've reversed the order to this called parameter.'"
Silver, noting how tomorrow's Visual Studio Live! keynote address will explore Microsoft DevOps in much more detail, explained how VSTS was just recently rebranded as Azure DevOps.
Along with that, the Azure Pipelines service was introduced, providing cloud-hosted DevOps pipelines for Linux, Windows and macOS. Silver noted the service provides unlimited build minutes for public projects and allows up to 10 free parallel jobs.
She noted the integration with GitHub, so developers can use Azure Pipelines to do a continuous integration (CI) build on a GitHub application.
Finally, Silver pointed to the Visual Studio roadmap for developers to check out what's coming next for the IDE.
Right now, she said, it covers Visual Studio 2017 through version 15.9, now in preview. More information will soon be provided on what new features are coming in future major releases.
Upcoming Visual Studio Live! events include a one-day hands-on training session in New York City on Oct. 1 and a five-day conference in San Diego Oct. 7-11.