Developers are highly opinionated when it comes to code editors. Some people swear by Vim. Others are Sublime and Atom advocates. However, there is one particular contender that’s so prevalently mainstream that you can’t ignore it. This little big code editor is known as Visual Studio Code.
While Visual Studio is popular, does it deserve the title of being the best code editor? Let’s have a look at its history, pros, cons, alternatives, and if it is really the best code editor for developers.
How Visual Studio Code Got Crowned A King
Up until recent years, Microsoft and open-source weren’t considered friends. In 2021, Microsoft products are in use by most if not all developers (if you count GitHub). However, it was Visual Studio Code that paved the way for the tech giant’s rebrand through its initial release back in April 2015. With five years of bug fixes, feature releases, and an extensive free plugins ecosystem, its popularity has grown dramatically.
By 2016, Visual Studio Code ranked 13th among the top popular development tools on Stackoverflow. It didn’t take long for the little big code editor to reach the #1 spot according to the 2019 Developers Survey, with 50% of 87,317 respondents using it.
But why is it so popular? On the surface, it looks just like a typical code editor. However, there are few distinct features that tip a developer’s preference over towards Visual Studio Code.
Visual Studio Code is free, open-source, and cross-platform. This means that it works on Windows, Linux, and macOS.
Unlike many other code editors, Visual Studio Code has an in-built debugger, making the development flow less ‘clicky’ and maintains a single view with code and debugger. This makes the process of bug tracking, and code run-throughs a lot easier and faster. You don’t need to have multiple screens to run the different consoles and rearrange them each time you need to minimize something. It’s built into the design and your desired workspace set up.
In addition to this, there is intelliSense but built into the code editor. intelliSense is a form of predictive coding. With the addition of framework, library, and/or language plugin extensions, you can leverage this even further with ready-made boiler-plates.
Another major thing about the extension marketplace for Visual Studio Code is that it’s not limited to just code. There are productivity, custom debuggers, code linters, ssh-terminals, prettifies, and DevOps pipeline connections.
Although the major feature of Visual Studio Code is being a code editor, with the addition of extensions, it becomes more than just a code editor. With the right settings, extensions, and configured shortcut keys, it can easily become a full-stack workstation.
While this is nice, how does it stack up against the other players in the code editor game?
Pros, Cons, and Alternatives
It’s hard to judge a code editor without context. So let’s review a few other popular alternatives and how they compare to Visual Studio Code.
Sublime Text vs Visual Studio Code
For a long time, I clung to Sublime Text and refused to hop over to Visual Studio Code. In part, I didn’t want to buy into the hype, mostly out of fear that I’d be disappointed. However, I eventually laid down my initial prejudices towards Visual Studio Code and gave it a try. Let’s just say that I haven’t used Sublime Text in a while.
So what converted me?
The main reason I stayed with Sublime Text was that it’s easy and quick to write and navigate code. Once you’ve figured out the keyboard shortcuts or configured your own, your productivity becomes tied to how quickly you can access certain features.
However, Sublime Text is just a code editor. Beyond editing code, it doesn’t do much. There’s no git integration or an onsite debugging tool like in Visual Studio Code. The barebones basics of Sublime Text were the original appealing feature, but as the development process increases in complexity, the general needs of a developer are not easily met by Sublime Text.
In contrast, Visual Studio Code can be classed as an integrated development environment (IDE), meaning that developers can write and test code at the same time. In theory, you can pair Sublime Text with a console – but that’s another thing to physically deal with while Visual Studio Code provides a cohesive solution.
Atom vs Visual Studio Code
Atom was created by GitHub before the company was acquired by Microsoft. Despite being a competitor to Visual Studio Code, Microsoft has clarified that Atom’s existence and support will continue.
Atom allows for plugins and runs on the same general philosophy of extensibility – like Visual Studio Code. However, ATOM out of the box requires more configuration to turn it into an IDE. Visual Studio Code, in contrast, comes preconfigured with what you generally need to get started. This makes the ease of adoption much faster and easier than Atom.
Brackets vs Visual Studio Code
Like Atom and Sublime Text, Brackets is another free and open-source software. Its origins sit with Adobe. The major perk of using Brackets is that it supports preprocessing and live edits.
While this is highly useful for a frontend developer, backend development on Brackets is not recommended. Adobe is traditionally known as a visual and graphical-based company, so it makes sense that Brackets is more supportive of frontend development processes than any other parts of the software creation process.
This, however, isn’t a bad thing. The way Brackets is structured makes it easier for a new frontend designer to learn and understand how to code than jumping straight into any other code and text editor. The selling point of Brackets is that it supports LESS and SCSS with live previews and inline editors. But that’s as far as the extensibility goes.
The only reason I’d recommend Brackets to anyone is if they are a beginner at coding or learning how to navigate through CSS for the frontend. This is because Brackets is more like training wheels for frontend development. In contrast, Visual Studio Code is more for anyone that wants to code and create applications.
Vim vs Visual Studio Code
Vim stands for Vi improved. For the uninitiated, Vim can feel like a blast back to the stone age of programming. In part, this is brought on by its brutalist design – a visual style that’s in your face through its bold and loud statements. If you look at the download and support pages, the text looks dated and the color scheme is still in its original neon 90s green.
For many of us that grew up as developers immersed in workflow aesthetics, Vim is like a hard slap in the face kind of text editor. For many backend developers and DevOps, it works out just fine.
In part, this is because Vim is often used in the CLI. It takes a new developer a while to get familiar with the shortcut keys and the inability to use a mouse. However, this complete discard of a periphery is the thing that makes it highly effective for enforcing efficiency. The removal of mouse travel time means that you get used to using the keyboard shortcuts, helping you stay in flow for longer and therefore create more code.
But for many of us, that’s not how we code. There are often breaks required to compile and run code, to check and to test. The major benefactors from Vim are most likely those whose’ work predominantly lies in the console. Apart from that, Visual Studio Code just seems a lot less cumbersome to deal with in comparison.
The issue with Sublime, Atom, Brackets, and Vim is that they’re all just text editors. Visual Studio Code comes out of the box ready to run the basics of an IDE while providing the ability to be highly customizable.
Another major perk of Visual Studio Code is that it is supported on macOS, Windows, and Linux. This means that you can take your workspace settings to many platforms without much of a fuss. Visual Studio Code also runs faster than most code and text editors.
So is Visual Studio Code the best code editor?
For most web-related development, the answer is yes. While you can use Visual Studio Code for mobile application development, it does require more setting up than you’d have to do if you used Android Studio Code for Android development.