I want to start by giving high praise to the Visual Studio Code team at Microsoft. It’s an incredible product that I believe will only get better. The git integration, the task runner integration, JavaScript debugging, IntelliSense, and parameter hinting are all incredible features. Visual Studio Code (VS Code) is well designed and it’s fast. It strikes a near perfect balance between being feature rich and simple.

BUT…

Visual Studio Code is lacking in some key areas that matter to me:

  1. Color Themes
  2. Packages
  3. Language Support
  4. Key Bindings

VS Code Color Themes

At the moment, you are pretty well stuck with a handful of color themes provided by Microsoft. While it is possible to use Yeoman to build/convert a .tmTheme file for Visual Studio Code, in my experience it simply doesn’t work. I used Microsoft’s Yeoman generator to convert a couple themes on Color Sublime, and while there were no errors doing so, the syntax coloring was completely wrong compared to the same theme in Sublime Text. This is very frustrating. When you stare at a code editor all day, color really does matter.

Screenshot of JavaScript code using the same color theme in Visual Studio Code and Sublime Text
1337 Theme in VS Code and Sublime Text (JavaScript)
Screenshot of CSS (Sass) code using the same color theme in Visual Studio Code and Sublime Text
1337 Theme in VS Code and Sublime Text (Sass)
Screenshot of PHP code using the same color theme in Visual Studio Code and Sublime Text
1337 Theme in VS Code and Sublime Text (PHP)

VS Code Packages

With most developer tools, the strength of the community makes a huge difference in a product’s value proposition. This is certainly evident in Sublime Text where there are hundreds of packages available. While Sublime Text has felt old and unrefined for a couple years, the package ecosystem continues to set the editor apart. I don’t know a single Sublime Text user that runs the editor without multiple packages in use. The result of such a robust package ecosystem is that each Sublime Test user runs a tailored variant of base product. This is a huge plus for Sublime. It’s not all things to all developers, but it can [almost] be.

VS Code Language Support

I initially installed Visual Studio Code because I am about to start a Node.js project. The editor shines with Node – like it was made specifically for Node development. It’s 100% awesome. But I also develop for Magento and WordPress, both of which are built on PHP. To the same degree that Visual Studio Code is awesome with Node, it lacks with PHP. Though, this isn’t too big of a concern for me. Microsoft has made their current language focus clear, and as the product progresses, I’d imagine that language support will improve.

VS Code Key Bindings

Last and least, the available key bindings (keyboard shortcuts) just aren’t there. This is a problem that I am less confident will be resolved. While the critical key bindings are available, and customizing them is near identical to Sublime Text, the breadth of bindings that you can customize in Visual Studio Code is trumped by Sublime Text. I’m sure some developers don’t take advantage of keyboard shortcuts to the extent that I do. Again, this is an area where Sublime Text is not all things to all developers, but it can be. With Visual Studio Code, it’s flat out not.

VS Code vs. Sublime Text Conclusion

It’s good to periodically assess the features of an editor that you really depend on. That was the inspiration for this comparison. I am frustrated with Sublime Text’s lack of innovation. Working with Visual Studio Code for a few days made me realize how awesome an editor can be. I want to move to it. Unfortunately, Microsoft is just not there yet. Visual Studio Code will likely be my editor of choice in the future. For now, Sublime Text lives on as my canvas for another day.

Posted by: John Dugan

Comments