New year. New text editor.

Written January 18, 2018 by Jeromy Condon

The constant influx of new tools / techniques / processes for website development can humble even the most seasoned developer sometimes.  I try to embrace the new as best I can, and am always working to keep my skills sharp, current, and efficient. For my 2018 work resolution this year, I decided I’m going to test drive some different text editors used for writing web code to see if I can identify a more efficient setup. Full disclosure: I’ve been a devout and vocal Sublime Text user for more than a few years now.  

Right now, for website development, I need the following features to work effectively:

  • Quick, snappy access to multiple projects, and a way to move between them quickly.
  • Emmet support for writing HTML markup efficiently
  • Easy access to custom code snippets and key bindings
  • Ability to view function definitions quickly to identify arguments and what order to pass them in
  • Source code version control
  • Robust extension library to augment the editor where needed
  • SFTP or GIT based code deployment capability built in

These nice-to-haves also play a role for me when selecting a new editor:

  • Intuitive GUI with quick access to common features
  • Well thought out themes to reduce eye strain after looking at programming code for many consecutive hours
  • Integrated terminal for working with node/npm/task-runners
  • Built in support for common abstractions like sass/typescript/haml etc
  • Lack of bugs and WTF moments

A quick google search will reveal that currently the web development community text editors of choice are Sublime Text 3, Atom, and Visual Studio Code. Over the years I’ve used each one a bit to test their functionality, but always seemed to find myself back in Sublime Text for its ease of use and speed. That and the fact that switching text editors can be a real stinger on your code writing productivity.

The development on Sublime Text 3 has been pretty stagnant lately, with many plugins over a year out of date. One of my primary reasons to switch editors is to try and find one that doesn’t require 10-15 plugins out of the box to work effectively, as well as an editor that is keeping up with the blazing progress in web development with regular updates.

Atom

I used Atom for a few days, and while having a nice GUI and excellent community support, I found it slow and buggy. I don’t work with gigantic files frequently, but while using this editor I was operating on some pretty large SVG files and found Atom struggling regularly to keep up. Atom, like Sublime Text, also requires many plugins and add-ons to get features I would consider essential to web development. Having integrated git support built in is nice though, and I found myself able to mostly replace Sourcetree with features available in the editor.  

All in all though, I didn’t find Atom a suitable replacement for Sublime Text yet. While being much more feature complete than the last time I used it, I still can’t seem to use it as as daily driver. Close, but no cigar.

Visual Studio Code

Next I tried Visual Studio Code. Right out of the gate my brain says “Blasphemy! I’m not using a Microsoft product!”. Yep. The struggles with Internet Explorers of days past have soured my view of many of their products.  That being said, the cool kids say it is a good editor, and I promised myself that I’d give it a try.

Right out of the gate I noticed that I didn’t need to install a bunch of extensions to get my minimum features on board. Emmet, GIT, Intellisense, Linting, and a terminal are built right in. I did need to grab an extension to handle SFTP deployment though, but found the interface for adding packages easy and streamlined. I was also able to migrate my custom key bindings and shortcuts easily, which was a big plus too.

After getting down to the business of it, I noticed the GUI was a big improvement over Sublime Text. While very similar, I find Visual Studio Code feels more polished and feature-complete than Sublime Text. The integrated source control was also superior to Sublime Text in my opinion, reducing my reliance on another application to manage my git repos.  

As far as speed goes, I found Visual Studio Code pretty much on par with Sublime Text. The same SVG files that Atom was choking on were handled admirably by Visual Studio. The editor starts immediately and always seemed snappy, no matter how many files I had open.

One could argue that Visual Studio Code is more customizable than Sublime Text as well. The options are stored in flat files and well commented. Tweaking the editor to my liking was a painless process, and didn’t require the use of a multitude of extensions and third party code.

After using Visual Studio Code for a week, unlike the other editors I’ve tried, I didn’t really feel the need to come crawling back to Sublime Text. Visual Studio Code just works. Right out of the box. In my experience, Visual Studio Code has improved my workflow, and I probably won’t be going back to Sublime Text any time soon.  

If you’re a programmer on the web looking for a new editor, I would wholeheartedly endorse Visual Studio Code. It’s free. It’s good. Give it a try!