I used to be an Emacs user. I made the shift to GUI based editors a few months ago. At work, we decided to port our software to an MVC framework. The amount of files and folders grew exponentially. Navigating the directory tree became a crucial part of editing code. This made me consider using a GUI editor.
The team suggested Sublime — it always felt like a compromise.
Why are we comparing Atom, Vim and Emacs?
Recently, I read Mike Kozlowski’s article regarding why Atom can’t replace Vim and I was wondering is Atom even in the league of Vim and Emacs? FiveThreeEight.com compares Messi to Maradona — but no one compares Georgios Samaras to Maradona.
So I installed it.
It looks so good
First impression — this looks frikkin’ great. The font size, line spacing , contrast and even the default colors —it all comes together pretty nicely.
Our Head of Development mentioned, “The font and its size is big enough to make it readable, but not so big that I feel I am in kindergarten.” I kept the orignal theme, but increased the line height, ever so slightly. This gave my lines of code some breathing space — an idea suggested by a colleague. Would totally encourage anyone to try it.
Power to the Packages
The first thing I realized is that Atom is all about the packages. Once I got a few packages installed, I seriously considered shifting to Atom. Below a few of the packages I would recommend:
- Auto Complete Plus — More powerful auto complete. https://github.com/saschagehlich/autocomplete-plus
- Git Plus — Complete Git functionality inside Atom. https://github.com/akonwi/git-plus
- Atom Linter — Realtime linting, with error and warning messages. https://github.com/AtomLinter/Linter . There are multiple languages supported. Each language requires a linter package.
- Terminal Status — Terminal inside Atom. https://github.com/guileen/terminal-status
- Merge Conflicts — Visual tool to merge conflicts easily. https://github.com/smashwilson/merge-conflicts
What I really enjoyed were the packages that allow you to customize your editor through a few personal touches. I added File Icons and File colors which definitely made my directory navigation more exciting. I also customized my Mini Map, which gives me a great overview of all my code. Alas, the Emacs add ons were really bad on the performance front, but I’ve heard good things about Vim Mode.
This is definitely Atom’s most powerful feature.
Versioning as well as code navigation is becoming as important as the actual writing of code. In such an environment, solid code editors like Vim and Emacs are not as efficient. The seamless integration with Git and Github is what makes Atom stand apart from other GUI editors.
With the Git Plus and the Merge Conflicts, Atom becomes really powerful for version control and conflict resolution.
The Git integration is what I liked the most. It really makes versioning very enjoyable. I always found this as a pain point. CVS, SVN, Git are all very important to the development process — but they were always to big to be enjoyable. With Atom, there seems to be some hope.
I am not trying to suggest that Atom is even close to the legendary status of Vim and Emacs. This might be nostalgia, or the fact that I’ve grown up developing on the Linux terminal.
Atom is slightly slow to start up, especially with a lot of packages. It also doesn’t always quit gracefully. It doesn’t do projects very well. It also can’t open the last opened folder. And for some reason, my Atom always starts with a JS error. But I am going to suck it up and say Atom is a serious contender.
You should try it out.