In my 12+ years of coding I've gone through quite a few code editors.
In the extremely early days I used plain text editors - whatever program was available on the computer at hand.
During my days as a student in physics and astronomy I was using a lot of analysis programs and would typically write within the program. Some Matlab, some Mathematica, some LabView, among some other terribly designed programs.
When I started web development I moved to Dreamweaver MX. With autocomplete it allowed me to remember less and write more code, faster.
Then came the reign of Coda for several years. The integration of FTP was super handy.
Mentions of Atom###
Over the past few months I've seen a few articles praising Github's Atom editor. Nearly all had good things to say.
I quickly checked out the Atom website and the screenshots looked slick. Major points in my book. With the availability of packages and themes I got the impression it was just as customizable as Sublime.
And it definitely helped Atom is a product of Github, a service I use everyday.
1 Week Trial###
With a strong first impression I decided I would try Atom for a week, using it for everything I would normally use Sublime for.
Installation was super easy and I added all my current projects to the sidebar so I could easily access my files.
Then I used it, everyday, about 8 hours a day, for over a week.
And then I used it for second week.
And now I'm using it for the third straight week.
That's 10 stars out of 5, to be clear. Atom is hands down the best editor I've ever used. Not only does it work extremely well (with some customizations), it also looks great and is easy to use. These latter points are critical considering I spend a good portion of everyday interacting with it.
A few days after making the switch I looked up some recommended packages and themes and searched for a few to add some functionality I wanted. Here's my setup:
I'm currently using the Atom Dark UI theme with the Base16 Tomorrow Dark syntax theme. Both are core themes included with Atom.
color-picker- for selecting color codes
file-icons- adds nice icons for each type of file
filesize- displays the size of files so I can keep an eye on performance metrics
linter-jshint- for linting JS using jshint
pigments- highlight color codes with their actual color
There are other packages I'm planning on trying as projects require them. Thankfully adding packages is super easy thanks to Atom's clean Settings page. You can search for packages and one-click install.
The only downside I've noticed in the past few weeks has been when I've tried to open large files. And I'm not talking about massive files, just somewhat large file. Atom will hang, but eventually open the. This usually happens when I accidentally click a file in the sidebar while searching for other files. Annoying, but not terrible.
It's Bigger Than Atom###
One of the most interesting facets of Atom is how it's built. Atom was initially built on a cross-platform framework using web technologies like HTML, CSS, JS, Chromium and Node. This allowed the Github team to build once and deploy to Mac, Windows and Linux.
This cross-platform framework has now been spun off into it's own open-source project - Electon - which can (and is) be(ing) used to build enterprise level apps. Think Slack, Wordpress and Mapbox, among others.
After just a few weeks Atom has become my only editor. I highly recommend trying it, especially if you're too cheap to pay the $70 for Sublime, ha.