As part of the series of posts on computational tools that I have grown to love (“How to Love a Tool…”), here, I am going to talk about the Atom text editor, developed rather recently by GitHub. Unlike the other text editor I discussed in this series of blog posts - the awesome and minimal Neovim - Atom is designed to be “a hackable text editor for the 21st Century,” built mostly on web-based technologies (e.g., Chromium), and making heavy use of CoffeeScript. Unlike the older but similar Sublime text editor, Atom is built to support community-driven plugin development, using GitHub as its main package repository (coupled with the accessible CoffeeScript language), whereas Sublime is maintained by a small core group, the size of which naturally leads to lags in core development. By lowering various barriers to development and accessibility, Atom provides a development environment that can grow (and has grown) at an incredible rate.
In comparison to editors like Neovim, Atom provides numerous resources that make
working on projects easier: high-level plugin management through both the GUI
and the command line (the latter using Atom’s
apm, based on Node’s
sleek user interface in keeping with its mission to be a 21st Century editor,
support for most popular keybindings (including
Emacs), support for language-centric
GUI development (e.g., the Juno IDE for Julia),
nearly instantaneous code evaluation via Jupyter
kernels, … and the list goes on and on.
Just the handful of features mentioned above provide a compelling reason to at
least take Atom for a test drive. And, honestly, Atom comes about as close as
modern text editors have ever come to the customizability offered by
Vim, while providing accessible package development and a
sufficiently large community. Yet another pro might be that Atom’s friendly UI
won’t strike fear into the hearts of beginners in the way that Vim does, making
it great for teaching (and, of course, lightweight use) too.
In the comparatively short period of time that Atom has been around, at least relative to Vim and Emacs, it has succeeded in building a strong (and growing) community, providing a sleek UI, and, perhaps most importantly, setting up an accessible plugin ecosystem that makes package development exceptionally easy.
Having pointed out all of this cool stuff about Atom, I should probably admit that this whole post was written comfortably via Neovim. Oh well, at least I didn’t recommend Atom for everything I guess…