Change primary editor to Atom

xcv58
xcv58’s blog
Published in
3 min readAug 2, 2015

--

I’ve used Emacs and Vim for years. And I really love them. They make my life easy, despite the nights I wrote their config files. Emacs and Vim are ONLY hackable editors. I can’t image who could enjoy Emacs or Vim without any config file(s). Probably I can use Vim without any config file occasionally. But I cannot use Emacs without evil package.

After 17 months public beta of Atom, I decide to use Atom as my primary editor.

Awesome out of box experience

Unlike Emacs and Vim, almost everyone can use Atom without any tutorial and configuration. The grammar snippets, spell checking, auto complete are shipped as default. I can’t say they’re better than some customized packages in Emacs or Vim. But it just works.

With the built-in package manager, it’s easy to install/deinstall package via click or command line. Unlike Vim you need choose from: Pathogen, Vundle, NeoBundle, and Plug. I used them all. And there’re always debate for them. The truth is that there’re no best choice but only tradeoffs.

Emacs has built-in ELPA. But ELPA lacks package preview, star, download statsitics features. But ELPA has more packages than Atom. It’s 39 years vs. 2 years. Even though the Atom packages are not good enough. With the offical support of GitHub, the Atom packages are easily to fork and contribute.

Hackable & Open Source

Atom is indeed hackable. Some core features is implemented by standard package.

In fact, there are more than 70 packages that comprise all of the functionality that is available in Atom by default. For example, the Welcome dialog that you see when you first start Atom, the spell checker, the themes and the fuzzy finder are all packages that are separately maintained and all use the same APIs that you have access to, as we’ll see in great detail in Chapter 3.

from: https://atom.io/docs/latest/using-atom-atom-packages

This means the users can also build powerful packages without hacking into the core source code of Atom. This depends how well the APIs designed. I believe it has a reasonable powerful APIs. Even you can’t find API for your goal, you can build and add it by yourself.

The build instruction and dependency is relatively easy: https://github.com/atom/atom/tree/master/docs/build-instructions

One good aspect is there’re only one language in Atom: JavaScript/CoffeeScript. You can argue Emacs is also built from Emacs Lisp. But sometimes, we must dig into C source code of Emacs to figure out meaning of API.

Another advantage is the asynchronous programming model. It’s good to handle interactive task in Editor. Even Emacs has asynchronous process support, but it’s not how elisp works. In general, Emacs Lisp is weak for some aspects.

CoffeeScript & LESS

The editors should have style, and the HTML/CSS is the most powerful tools for styling things. For example, the minimap of Sublime is a useful plugin:

I tried almost all copycats of Emacs and Vim, sadly none of them works. But the Atom Minimap package works well and it’s able to provide more features than Sublime minimap. I believe that Atom is far more flexible to tune the UI than Emacs and Vim. The concepts, buffer/window/frame in Emacs and buffer/window/tab in Vim has less power to build complex UI than HTML/CSS.

Goodbye to Emacs/VIM?

No and never!

Even Atom beats Emacs and Vim in some aspects. But there’re lots of disadvantages for Atom, such as the big file support, community size, terminal support, etc. There is no silver editor as no silver bullet. I just prefer Atom as primary now. This means I’ll use Atom a lot more than Emacs/Vim. But for some tasks Emacs is better, for others maybe Vim is better.

And probably the editor war will become: Emacs vs. Vim vs. Atom

--

--