A new version of Microsoft’s integrated development environment (IDE) goes live today with the release of Visual Studio 2019 and its cousin Visual Studio 2019 for Mac.
Visual Studio is in a bit of a strange position, and it would be fair for developers to ask why this branded release even exists.
Indeed, this iterative, incremental model is the one that Microsoft is pushing (and using) for services such as Azure DevOps and is comparable to the continuous development we see for Office 365, which is updated monthly, and the free and open source Visual Studio Code, which also has monthly iterations. With this development process in place, one wonders why we’d bother with “Visual Studio 2019” at all; let’s just have “Visual Studio” and keep on updating it forever.
The reasons for sticking to the old way of releasing? There are customers who buy perpetual licenses, and a new major version provides an easy opportunity to make certain breaking changes, such as dropping support for old platforms or making certain major changes to the C++ library. To that end, Visual Studio 2019 (finally) drops Windows XP support for C++ projects; you’ll have to use the old Visual Studio 2017 C++ compiler if you want to continue targeting the long-obsolete operating system. A new major version is also a good time to make larger user interface changes, and indeed, some of the first things that will be noticed on installing Visual Studio 2019 are the new welcome screen, a new interface for creating projects, and a new title bar that incorporates both the application’s menu and a revamped search feature for finding features within the IDE.
In response to user demand, C++ and Python have been added to the Live Share experience. Python is still something of a novelty in Visual Studio; support for the scripting language was added to Visual Studio 2017 in one of its point releases. Visual Studio 2019 expands on this with support for multiple Python runtime environments, making it easier to switch between interpreters and versions, a more capable debugger, and smarter IntelliSense completion.
C++ developers will benefit from a compiler with a better optimizer, better support for projects built using CMake, and partial support for enforcing the C++ lifetime profile, a set of static, compile-time rules that enable the compiler to detect and warn about unsafe use of pointers and iterators.
With GitHub now a part of Microsoft, Visual Studio is picking up more GitHub integration; 2019 adds the support for GitHub’s Pull Request model for managing the integration of patches into a codebase directly within the IDE. The IDE now also includes support for Git’s “stash” feature that allows a set of changes to be temporarily stored so you can switch to a different branch without having to commit them or risk losing them.
As with any new Visual Studio release, there’s also the usual range of updated compilers and language versions, such as a preview of C# 8.0 features, new refactorings, and so on.
Visual Studio for Mac, derived from the Xamarin IDE that Microsoft acquired when it bought the cross-platform .NET company, is also updated today. The first iteration of Visual Studio for Mac was basically a rebrand of the Xamarin Studio app—updated to include Microsoft’s C# compiler and .NET libraries, instead of Xamarin’s clones—with little real relationship to “real” Visual Studio.
However, Microsoft does appear to be making a real effort to bring the products together in those areas that make sense. Visual Studio 2019 for Mac includes a preview of a new text editor that’s built on the same engine as the one in Visual Studio for Windows, with a native macOS user interface and capabilities. This means that both Visual Studios have very similar capabilities in things like IntelliSense, code completion, and quick fixes. The new editor isn’t on by default, but it can be enabled for C# and XAML, with more languages planned once those are stabilized. The welcome screen also looks much like its new Windows counterpart.
Microsoft is unifying the experiences in other areas, too; the Unity debugger is now the same between Mac and Windows, and Microsoft intends to bring portions of the Windows Xamarin Forms XAML experience to Mac in a future update.
On top of this, there are numerous performance and stability improvements and lots of accessibility improvements to help those using assistive technologies.
With both Visual Studio for Windows and for Mac, Microsoft has emphasized the importance of user feedback in the development process. Both the point releases and the major updates are guided by user feedback, with, for example, the new Python and Live Share features coming in direct response to user requests. The regular flow of point releases enables Microsoft to put functionality in front of users much sooner than it could with only major updates, and that functionality can be re-shaped and extended in response to feedback. Compared to the olden days of Visual Studio, when you’d file bugs on the Connect site only to have them disappear forever, the experience today is a welcome and refreshing improvement.