GitHub's Atom: An Open Source Text Editor for a Polyglot World

05/06/2014

Calling it "a hackable text editor for the 21st century," online-code-hosting platform provider GitHub on Tuesday released to open source its Atom text editor for developers. Atom is free and available now for the Mac. Both Windows and Linux versions are expected soon.

Atom is built around modern Web technologies (HTML, CSS, JavaScript, etc.), with Google's open source Chromium at its core. It's designed to be approachable by a modern audience, explained Nathan Sobo, a GitHub developer working on the Atom team, as well as devs comfortable with traditional text editors. Developers who are familiar with the way user interfaces have worked for the past decade can hop into Atom and feel at home and be productive right away, he said. But Atom also "carries on the tradition" of such venerable text editors as Vim and Emacs, which have been around since the late '70s.

"Now that we're in this polyglot world, you'll notice that whenever a new programming language starts to emerge, the first tools available for it are always Emacs and Vim," Sobo told this site. "It always starts with this very general purpose editor that someone has extended to make themselves more productive in this environment. So we developed Atom is to provide a tool that accelerates that process. A new language comes along and very quickly people can build fantastic tooling around it without having to wait for some business to get started that needs a guaranteed capital flow to build a customized product around that language."

"Our goal was also to make something that a beginner could jump into and be productive right away," Sobo added, "and as his or her skills grow, they can change the tool so it can grow with them and go wherever they need to take it. Atom is highly customizable, highly programmable, and super powerful."

Atom comprises the core application, a package manager, and the Chromium-based desktop application framework. The core includes the build system, Atom's global environment, the workspace and panes, and the text editor component. The package manager is a client library and command-line utility designed to facilitate publishing and installing Atom packages. GitHub has been extracting Atom functionality into libraries that can be used independently, and it says that process will continue. The package manager is currently powered by Atom, but GitHub says it plans to standardize the backend APIs so that users can host their own registries.

"I've always dreamed of a general purpose editor that straddles the line between a plain text editor and an IDE," Sobo said. "The virtues of a plain text editor are that it's simple, it's fast, and you can work in any language you want. And an IDE is super powerful and knows everything about the language you're using. But an IDE has sort of been handed down from the cathedral. Someone built it specifically for, say, Java or .NET.

Today's release comes almost 10 weeks to the day after GitHub launched what quickly became a massive public beta program. The organization had been using Atom internally when the company sent out more than 250,000 invites. An estimated 150,000-plus coders downloaded the new text editor to take it for a test drive, the company says.

Atom is currently in a pre-1.0 version, explained GitHub developer relations manager Chris Kelly in a blog post, and there are still "a number of areas we would like to improve over the next few months." The team will focus on improving performance, releasing Atom on Linux and Windows, and stabilizing the APIs before version 1.0 is released, he said.

Atom is being released under the MIT License, which Sobo said will provide for "maximal creative potential."

"There is no more personal relationship that a programmer has to anything in his or her career than to their text editor," Sobo said. "It's literally in the muscles of your hands! Even as you're crossing programming languages, the text editor is the one thing that can go with a developer for their entire career. That's one of the reasons it was so important to us to make Atom open source. They're making a big investment in this tool. They want to have transparency, they want to have control, and they want to know that it's going to be around as long as they want to use it. I think open source serves all those needs."