When Visual Studio Code was released I was skeptical. So skeptical you would not have caught me dead repeating the title of this article. My tool belt consisted of Visual Studio 2013 and Notepad++ for quick edits. Since my workload mainly had me dealing with C# and Razor, working with editors like Sublime, VIM or UltraEdit was not really ideal. There are just some features which a full stack developer, especially one dealing with .NET cannot do without. Mainly things like code-completion, debugging and package management.
Visual Studio Code arrived at the right time and place. Microsoft was on the fast track to becoming an unrecognizable, but unarguably better company. Looking back it all seems so clear, Microsoft was getting ready for cross platform support, leaving the Windows first mantra behind as long as developers embraced Microsoft services. Now they needed to provide developers with first class tools to support their new strategy no matter the platform.
Let’s talk about one of the most important things behind any tool, that thing is documentation. Visual Studio Code provides incredibly comprehensive and well written documentation. The team behind the tool has put a lot of work and thought into this aspect. The download page serves as a landing page for all things documentation. It does a very good job of pointing you in the right direction to get started.
Next is language support. VS Code ships with support for popular languages like HTML, JavaScript and TypeScript. But through the magic of extensions hundreds more are supported. Other editors support features like syntax highlighting and code navigation; Visual Studio Code goes beyond that with IntelliSense which brings very useful features like smart completions. Chances are your favorite language is supported.
Go beyond syntax highlighting and autocomplete with IntelliSense, which provides smart completions based on variable types, function definitions, and imported modules.
Another important feature is version control. Git is supported out of the box and many others are supported via extensions. This means whether you’re working on Git repositories, or perhaps still sticking with TFVC, VS Code has you covered. Git commands are built in, but for those of us that prefer clicking around, contextual menus along with drag and drop support help us easily manage source control interactions. A byproduct of multiple users touching a repository unavoidably results in merge conflicts. VS Code helps you easily identify and resolve these. Viewing diffs is also supported and can be accomplished with a couple of clicks.
A very cool feature is the ability to view the resultant commands generated by your UI driven source control interactions. This can be done by opening the Git Output window. This is extremely useful for those new to Git. It helps them understand the commands involved and how to implement them.
The next topic is very controversial and frankly is what made me fall in love with the tool. Debugging. VS Code has built in support for debugging Node.js as well as JavaScript and TypeScript. It doesn’t stop there. Again through its expansive extensions marketplace. Support for most languages is present. I have never been a fan of print statements or alerts. Debugging support allows me to stay away from that practice. This functionality works just as you’d expect. You set breakpoints and can inspect objects just as you’d normally do in Visual Studio.
For those situations where breakpoints won’t cut it, Logpoints are also supported out of the box for Node.js and supported for other languages through extensions. If you are not familiar with these. They are a variation of Breakpoint which does not stop execution. They can be as simple as plain text but can include expression evaluation.
Today my tool belt still includes Notepad++, but Visual Studio Code is now there as well while I do spend most of my time in Visual Studio.
In a nutshell VS Code took all the good things developers love from full IDEs and left out most of the things most people either didn’t use use or care for. Add to that cross-platform support, feature parity with alternatives, a thriving extension marketplace and a price tag of Free! and you get a recipe for success.
You can visit the official page here for more information on this incredibly powerful yet lightweight tool.
Let us know what you think about VSCode? Likes and dislikes and worthy alternatives.