A little over a year after its first public release, GitHub's cross-platform Atom editor has hit its full 1.0 revision and is already living up to its promise as a basis for other projects.
Atom was originally conceived at GitHub as a way to combine the visual appeal of editors like Sublime Text with the extensibility and programmability of Emacs or Eclipse. It's capable of being programmed to work with most any language or file syntax, and Atom's MIT licensing means it can serve as the basis for any number of other projects.
Rather than being based on another text editor or IDE, Atom's roots are in two Web technology projects: Google's Chromium project and the Node.js engine. The former provides the editor's GUI and front end, while the latter delivers its core functionality.
GitHub's Atom editor can be extended with JavaScript to support any number of syntaxes or additional features. Here, a map of the source code (in the column on the right) is added by way of a third-party package.
In the year before Atom's 1.0 release, a veritable forest of add-ons for the editor appeared, in much the same way the Node.js framework was enriched by the culture of software that has appeared in the NPM repository. (Atom, being Node-powered, can make use of Node packages.) Popular packages include minimap, which provides a graphical overview of the currently edited file in the right-hand margin of the editor -- a feature seen in IDEs like Eclipse -- and the atom-beautify code cleanup plugin.
One sign of Atom's success as a project has been Facebook's Nuclide IDE, itself based on Atom. Originally intended for internal use at Facebook, Nuclide extended Atom by offering features like support for Facebook's HHVM language and React/React Native frameworks, as well as support for development on remote Node.js instances via an SSH connection. Facebook recently open sourced Nuclide under licensing terms similar to Atom's own.
Some of Atom's pre-1.0 issues didn't thrill fans of existing code editors or IDEs, such as the limitations on file sizes or the general performance of the editor. The former is being lifted as of Version 1.0, and Atom developers have commented that "making Atom performant for files of all sizes remains a top priority." Atom 1.0 also now includes built-in support for ES6 language features -- a crucial thing both for those developing for Atom, and developing projects in JavaScript 6 generally.
GitHub's press release for Atom 1.0 hinted at how nailing down the editor's API and core functionality was "only the beginning," and how future features will revolve around "reaching the full potential of the platform." Given that the project is a GitHub creation, one possible mission there may be to have Atom serve all the more as a delivery vehicle or friendly front-end for the enterprise features GitHub has been refining, especially as it is said to be eyeing further funding.