Atom editor first impressions

In February 2014, I managed to get my hands on an invite (thanks, Sam Lambert!) to try the beta of Atom, the new IDE from GitHub.

Upon installation, it does set itself as the default for common “code”-type file formats (.html, .css, .php etc), so I decided to run with it and try it as my default editor for a while.

Setting itself as the default application for files was a bit unsavoury, but up to now it’s really the only negative I’ve found. I have other niggles, but they’re not with the editor itself and more just gripes that come part and parcel of transitioning text editors.

A criticism a lot of people seem to have is that it looks like a rip-off of Sublime Text. This is simply not the case though, and just seems to be a rash judgement based on a few public screen-shots of its interface. Although it’s undeniable that Atom has taken a few cues from Sublime Text, writing Atom off for this reason is like dismissing Go programming language for borrowing ideas from C++.

Atom is package-based, meaning all of its functionality come from installable bundles. Out of the box, Atom comes with packages for most common programming languages, as well as common editor tasks. In fact, just about everything about the editor can be extended with a package.

One key point in which Atom differs from other text editors—yes, including Sublime Text—is that it’s based on web technologies. That means the interface can be inspected with dev tools just like a web page can be in a WebKit-based browser, and styled to your heart’s content with nothing more than vanilla CSS.

One area where GitHub’s influence is undeniable is the first-class integration of Git. With the default dark-on-light file tree, modified files stick out like a sore thumb as they’re coloured orange. So no longer do you have to jump to the Terminal to run git status, or open a Git GUI like SourceTree to see which files you have changed. They’re there, clear as day, prompting you to act on them. Unfortunately, you still have to jump to an external application to commit changed files, but I imagine there’s a package that can add this functionality.

Overall, I’ve enjoyed developing with Atom. I haven’t had the clunky transition period I find I have when changing editors in the past. To that end, I’m going to stick with Atom.