A Month with the Atom Editor

Vim is a good friend of mine. When we met during my freshman year of college at MTU, we quickly hit it off. I never looked back with any regret at my tiny TI-85 screen, Notepad, or QBasic where I first tinkered with bending computing devices to my whims. Since then I have tried other editors, and even used a few for extended periods for a variety of reasons (e.g., Kate because of its SSHFS and KDE tie-ins, Visual Studio for its strength with all things Microsoft). Still, through it all, Vim has been my go-to editor for nearly 15 years.

I have been using [Atom](https://atom.io/) almost exclusively for the past month — without [vim-mode](https://atom.io/packages/vim-mode). This was an intentional decision on my part. I didn’t have any complaints about how Vim had been working for me prior to picking up Atom. It, along with our built-to-Atomic-tastes configuration, did great navigating the mixed mobile & web project environment I was working in. I was just feeling ready to try something different when Atom came on the scene — something that wasn’t vim and didn’t work like vim. Plus, I dig the name and logo. ;) I figured, at the worst, I’d return to Vim after a while with a renewed appreciation for everything that makes it, well, Vim.

So, how has it gone?

Atom’s Many Strengths

Overall, I’m very impressed with Atom. For an editor to work for me day-to-day, the little things have to work well. The tabs, split panes, fuzzy finder, tree view, search & replace, and keyboard shortcuts have generally worked as I expect in Atom. It has the basics well enough covered that my knowledge of the keyboard shortcuts is a larger limiting factor to my effectiveness.

The team at GitHub has done a lot right, I’ve enjoyed the experience of using it, and I think Atom is set up for a strong future.

Atom’s Extensibility

Atom is open source and has extensibility built in as a core value. We know this model can work, as evidenced by the longevity of Vim and Emacs. That gets high marks in my book.

Even better, the extensibility of Atom is extremely approachable. I haven’t done much with Vim or Emacs aside from configuring existing packages and extensions, either because I haven’t found the need or the time. Atom being a young application gave me plenty of reason, and my familiarity with web development made the time a small issue. I published my first package, [project-colorize](https://atom.io/packages/project-colorize), within an hour or two of first looking at the package creation tutorial. Admittedly, the package only contains six lines of original code. But, that brings me to another point…

There are a lot of open source JavaScript libraries. The web has become a huge app platform over the past decade, with nearly all client-side code needing to be written in (or eventually become) JavaScript. I was able to build a package that I find useful and interesting with only six lines of new code, and I think that represents a huge amount of potential for rapid innovation. I’m excited to see what the package ecosystem develops into.


The core editor experience is solid, as it has to be, but the packages will make or break Atom. Here are a few I’ve been enjoying:

* [git-blame](https://atom.io/packages/git-blame) – Toggle git-blame annotations in the gutter of Atom editor.
* [zen](https://atom.io/packages/Zen) – Distraction-free writing.
* [project-colorize](https://atom.io/packages/project-colorize) – Color the tab bar background to differentiate between different open projects in Atom.

Drawbacks of Atom Editor

All that said, Atom is not perfect. It’s still a relatively young project, and there have been things that pushed me back to Vim briefly. They’ve all been pretty minor. A few examples include:

* Needing to open files > 2mb
* Wanting block selection with Vim’s familiar keyboard navigation
* Atom crashing, usually due to a non-core package misbehaving

I’m optimistic that this is more than a fling. There are still things that Atom just can’t do for me that Vim can (e.g., remote pairing, work in a non-GUI environment), but over time I expect that list will shrink. I’m expecting to continue using Atom as my primary editor for a good while longer, and hope to find some time to put together another interesting package or two. Thanks for sharing your efforts with us all, GitHub team and contributors!

  • Paul Livesey says:

    Nice review. Thank you. I’ll give it a try.

  • Gil Carroll says:

    I agree, also. I switched from sublime text (also very good) to Atom b/c is was approved by my company. It is lighter than sublime, though not quite as functional (or I don’t know it as well).

  • Daniel says:

    SO – still using Atom? Did it stick?

  • Thiago Gomes says:

    Nice review.
    I started to use Atom principally because of curiosity and the interface, that’s very friendly and beautiful.
    I had been used Vim for a long time and what I miss in Atom was basically the keyboard shortcut from vim.
    I tried to use the vim-mode, but it was incomplete and make some confusions between keyboard shortcut native from Atom and the plugin.
    I think in back to use Vim, but I feel that if I contribute with Atom I can make it much better and make me much happy. I know, may be I’m just tired to use Vim. :D

  • Richard says:

    Personally I had a lot of hope for atom when I started using it but….
    It seems that it is not even close to being ready for serious consideration.

    Repeatedly freezing because it cant open a file that has long lines in it. I mean seriously? How can it even be considered if you can’t open text files because they have relatively long lines. I am not talking about huge files, just 247k.

    Also, the complaints I hear are about it are that extensions are breaking it. It is useless without extensions and there seems to be very little in the manner of quality control. I only tried extensions that came highly recommended but yet, most of those are in a sub V1 form. Documentation on most extensions is pitiful. I mean seriously sad.

    I must be missing something but since it was made by github I kind of expect it to work well with git. My experience is that it sucks with git. The best extension I could find for git doesn’t even have a pull command. And when it does try to work with git it flashes messages but not sure how to read the warnings after they disappear from the screen. Like I said, maybe am missing something.

    The idea is nice but the result is pale. How can anything call itself an editor if it crashes editing plain text files.

    It hardly makes the grade as a toy and most certainly is not a tool for professional use. Just another piece of junk for hipster coders who think they are on the cutting edge. If you have to go back to vi to get your work done then why even bother in the first place.

  • Comments are closed.