Why I Switched from Sublime to Atom
By Randall Reed
Before Sublime, I didn’t know what I was missing
Writing Ruby in Sublime Text 2 was my first time using a modern text editor. Before I became a web developer (back in my Visual Studio days), I thought upgrading Notepad to Notepad2 or Notepad++ was all I could ever need.
Look that those line numbers! It highlights matching parens!
-A naive me
Then I was introduced to Sublime Text as part of the pre-work for the Flatiron School, a web development immersive program, and my eyes were opened.
Sublime Text was soooo much better than what I had been using all of my life! You could easily select multiple instances of a chunk of text (⌘+D), duplicate selections (⌘+⇧+D), create multiple cursors (⌘+click), and so much more!
So when I heard about Atom, I thought ‘It can’t be that different,’ and subsequently ignored it for a long time. A few months ago, I installed Atom so that I would have it available for pairing interviews if the candidate preferred. Slowly but surely, I have discovered features that have confirmed that I will never go back to Sublime. Here are a few of the most compelling ones.
1. Highlighting Changed Files
The first thing that caught my eye about Atom, and prompted me to keep trying it out, was changing the color of filenames based on their state. Whenever you add a new file, the filename shows up as green in the file tree in the side bar. Changed files are displayed in yellow, and that color scheme is applied recursively to the containing folders. This makes it a lot easier to find the files you’re working on at a glance, and also serves as a reminder to commit your changes periodically.
2. Resolving Whitespace Errors
To be honest, I don’t know why the Ruby Style Guide prescribes not having any whitespace at the end of each line, nor why every file must end with an empty line, but I try (not very hard) to follow the convention. Github conveniently highlights this extra whitespace in your diffs, and I have made a few PR rebases to address them, but it was only ever a minor nuisance.
Then I started working with a new team on a React project with a very fastidious linter that would cause our local test runs and CI builds to fail for any extra whitespace. It became a huge headache! Fortunately, I had recently discovered that Atom automatically resolves some whitespace errors for you whenever you save a file, and handily convinced my pair to switch.
Saving a file with whitespace errors in Atom
3. It’s Free!
So I don’t mind paying for software that I find useful, including Sublime Text. But software licenses can be tricky. It’s okay for me to use my personal license on my work laptop, as long as I remove it when I return the computer to my employer. But as a consultant, I cannot install my license on every pairing machine I use, nor do I want to ask my clients for licenses. The Sublime pop-up prompting you to purchase a license is a minor annoyance, but abrupt enough to interrupt your flow. On the other hand, Atom is open source and free to use.
4. Out-of-the-box Executable
Granted, setting up your Sublime Text subl symlink only takes a minute, but it requires me to remember enough commands that it’s a discrete step on my personal ‘New Computer Setup’ gist. When you install Atom, you can run atom . from the command line immediately — no need for symlinks, path variables, or re-sourcing your bash profile.
5. Simpler package installation and preference management
Every time I wanted to search for and install a package in Sublime, I would have to google the command to bring up the menu (for your reference, ⌘+⇧+P then search for and select Package Control: Install Package). Similarly, I keep a gist file of my Sublime preferences so I can easily apply them on a new installation. With Atom, the user experience is refreshingly simple. Package installation is intuitive and the settings menu looks how you would expect.
And last but not least…
6. Dragging and dropping files!
Ok so this one I just discovered, and I still can’t believe it. I cannot tell you how many times (innumerable) I have tried to move a file between directories in Sublime Text by dragging it as you would in any other file explorer interface. Even though I know it doesn’t work, I still find myself futilely clicking and dragging periodically. Then I tried it in Atom, fully expecting the UI to not respond at all, like it always doesn’t, when suddenly the file moved and the name turned green (see #1)! This was the last straw that burned my bridge to ever returning to Sublime Text.
Note: I know some (all?) of the features I have described here are available in Sublime as installable packages, but honestly I’m not the kind of person to search these packages out. It would appear that Github took a page out of Apple’s playbook when building Atom and created something that ‘just works(seamlessly)’, and I am delighted.