Microsoft just launched its new IDE (integrated development environment) with the release of Visual Studio 2019 and its “sister” Visual Studio 2019 for Mac.
The current situation with Visual Studio is a little strange, and developers might be wondering why it’s been released in the first place. Since its launch 2 years ago, Visual Studio 2017 has received nine-point releases and numerous patch releases. Each release came with new features and bug fixes, which made using Visual Studio similar to using, say, Google Chrome, where each version brings a stable flow of incremental improvements.
Promoted and used by such services as Azure DevOps, this iterative incremental model by Microsoft can be compared with continuous development we witness in Office 365 and Visual Studio Code which are updated every month. With such an approach, why name the latest version “Visual Studio 2019”? Wouldn’t it be more logical to maintain the name “Visual Studio” for all subsequent releases?
Why is Microsoft sticking to an old approach to releasing? First, there are customers that buy perpetual licenses, and a new major version allow to easily make changes to the software, e.g. cut the support for old platforms or make changes to the C++ library. Visual Studio 2019 finally dropped Windows XP support for С++ projects. So if you still want to target the long outdated operating system, you’ll have to use the old compiler from Visual Studio 2017. Also, the new version is a great pretext for making major changes to the interface. Now, after installing Visual Studio 2019, you’ll see a new welcome screen, new interface for creating projects, and new title bar that includes both the app’s menu and improved search feature.
The new version has some features that lacked in the 2017 version. For me, the biggest news was that Live Share is finally generally available. This is a collaborative editing system that works in both Visual Studio and Visual Studio Code, allowing pairs of developers to code and debug together while seeing their own customized interface. Released in November of 2017, the preview version of Live Share only supported JavaScript (as well as Typescript, its successful Microsoft version) and C#.
Reacting to the user demand, the developers enhanced Live Share with C++ and Python. Added to Visual Studio 2017 in one of the point releases, Python is still a new thing for Visual Studio. Visual Studio 2019 goes even further by supporting multiple Python runtime environments (allowing to switch between interpreters and versions), a more advanced debugger, and a smarter IntelliSense completion.
С++ developers can now benefit from enhanced compiler optimization, better support for projects thanks to CMake, and partial support for the C++ lifetime profile, which is a set of rules that allow the compiler to give warnings about unsafe use of pointers and iterators.
Now that GitHub is a part of Microsoft, Visual Studio is actively integrating with GitHub. In 2019, Visual Studio was enhanced with the support for GitHub’s Pull Request model for managing patch integration into the IDE’s codebase. Plus, Visual Studio now also incorporates the support for Git’s “stash” feature that allows to temporarily save a set of changes so that the user can switch to another branch without the need to commit those changes or the risk of losing them.
Visual Studio also has the standard series of updated compilers and language version, e.g. preview of C# 8.0 capabilities, new refactorings, etc.
Another product that got its update is Visual Studio for Mac. It’s based on Xamarin IDE acquired by Microsoft. Its first version was, in fact, the rebranding of the Xamarin Studio app (with C# compiler and .NET libraries from Microsoft) and has little to do with the “actual” Visual Studio.
However, Microsoft appears to be serious about bringing these products closer. For example, Visual Studio for Mac 2019 incorporates a preview of a new text editor based on the same engine as the one in Visual Studio for Windows, with the native interface for macOS. This means that now both Visual Studios have similar features when it comes to IntelliSense, code completion, and quick fixes. The new editor is not activated by default but it can be enabled for C# and XAML. In the future, more languages are planned to be added. The welcome screen now looks very much like its Windows counterpart:
Microsoft is bringing together the capabilities of the two Visual Studios in other areas as well. For example, the Unity debugger is now the same for Mac and Windows. In the next update, Windows plans to partly add the Xamarin Forms XAML experience to Mac.
Plus, the new version features enhanced performance, stability, and accessibility.
Microsoft emphasizes the importance of user feedback while developing the two Video Studio versions. Both point releases and major updates are based on user feedback. For example, new Python and Live Share features were added as a result of multiple user requests. Through a continuous series of point releases, Microsoft can offer new functionalities much faster than it could with only major updates. Plus, guided by the user feedback, the developers can modify and extend these functionalities. Compared to the times when users would file bugs on the Connect website only to get rid of them once and for all, the current situation seems a big step ahead.