Chris Wanstrath was in love with Emacs.

Emacs is a nearly 40-year-old computer program that lets you, well, edit text. It's a way of tinkering with obscure files buried inside a computer's operating system or, better yet, building new computer programs. Wanstrath fell in love with it because it offered a way of building itself. "It's the Holy Grail of editors. It's essentially written in itself," he says. "You can build a plug-in for the editor that can do anything the editor is capable of doing."

If you ply your trade outside the world of computing, that may sound odd. "You don't get this in too many other professions," Wanstrath says, "though there may be some carpenters who use hammers to build hammers." If you're a coder, however, this kind of recursiveness is commonplace—and extremely useful. It can make coding easier. And more powerful. "I'm like a lot of programmers," Wanstrath says. "I love the idea that the tools you use every day can be used to customize and influence the tools you use every day."

GitHub

But as much as he loved Emacs, Wanstrath also knew it was flawed. If you want to rebuild Emacs with Emacs, you have to use an Emacs-ified version of Lisp, an older programming language that isn't as widely used as more modern languages. "The rise and fall of Lisp has already happened," Wanstrath says. So, in the summer of 2008, Wanstrath and started building an Emacs for the modern world, an editor that offered a way of building itself via JavaScript, the lingua franca of the worldwide web.

Somewhere along the way, he got sidetracked. Wanstrath is the co-founder and CEO of GitHub, and in those days, he was busy building the company into the center of the coding universe. But seven years after he first cooked up the idea for his new-age code editor, it has arrived. It's called Atom, and today, Wanstrath and GitHub are set to unveil version 1.0 at a conference in Tennessee. Atom has reached the point, he says, where anyone can use it to build Atom.

Building Stuff for Building Stuff

Of course, this being the age of open source software, people are already building with Atom. GitHub open sourced an early "beta" version of Atom about a year ago, sharing the underlying code with the rest of the 'net, and since then, the tool has been downloaded 1.3 million times, with over 350,000 people using the thing on a regular basis.

At Facebook, developers have already used Atom to build their own Atom, a text editor called Nuclide that's tailored for use with the unusually enormous amount of code that runs the Facebook empire. Others are building all sorts of new plug-ins for Atom, including one that does auto-completes code as you type and another that scans code for errors. A company called Nylas is even transforming Wanstrath's editor into an email client.

Atom is a symbol for a changing software world. In the past, businesses would use what they could buy from companies like Microsoft and Oracle and Apple. And that was that. Now, with the rise of open source, businesses can build exactly what they need, rather than just relying on what's available. With the tools they use to build stuff, they even build better tools for building stuff. All this lets businesses evolve in bigger ways, at a faster pace.

Yes, so many other editors provide a way of customizing what they do, from Vim to Notepad. But typically, they're written in a language like C (which lets them operate at speed), and you customize them using some sort of simple scripting language (which lets you operate at speed). As Wanstrath explains, this limits what you can customize. "You don't have access to the engine." But Atom, he says, is different: Everything is built with Javascript.

Wanstrath acknowledges that he's an "editor nerd." But that goes for so many coders. And whether you're an editor nerd or not, the point is that you can use Atom to build pretty much whatever editor you want, using a familiar, relatively simple language.

Flexible Enough for Facebook

Previously, Facebook used Apple's Xcode software to build its big blue iPhone app. But the code for the app grew so large—apparently, Facebook's code base is nearly as big as Microsoft's Windows operating system—that Xcode couldn't really handle it. Across the company, it would crash about 50 times a day. "Xcode didn't scale for our needs," says Facebook's Mike Bolin. "It scales for small developer teams, even medium-sized teams. But we're off the charts." So the company built its own editor with Atom.

Atom was particularly useful, Bolin says, because they could customize it with Javascript and other web technologies. That meant practically any Facebook developer could hack on Nuclide. "It has a making-a-web-page feel to it," he explains.

In turn, Facebook has now open sourced Nuclide, and the process can repeat—ad infinitum. Atom is an editor that lets you build an editor that lets you build an editor. And so on. And so forth. The upshot is that Facebook can feed itself by giving something away. Others, outside of the company, can help improve what it has built.

The GitHub Way

Much the same goes for GitHub. In giving Atom away, Wanstrath and GitHub can move toward their own goals. An open source Atom is a better Atom. "It's one thing for me to be able to hack my editor," Wanstrath says. "But what's way more powerful is that I can use other plug-ins that other people have written." What's more, Atom dovetails with GitHub, the primary repository for open source code on the 'net. The more people use Atom—and its many incarnations—the more they use GitHub.

“Facebook is an example of that," Wanstrath explains. "We released Atom. They built this Nuclide thing on top of it. And ultimately, all those people are contributing to the community, contributing to GitHub."

Yes, the software is free. But for both Facebook and GitHub, this free software can ultimately feed the bottom line. If Facebook can improve its iPhone app at a faster pace, more people will use it, and that means the company can serve them more ads. If more companies use GitHub, more will pay for private code repositories or shell out for GitHub Enterprise, a way of running the service on your own machines.

That may sound like a stretch. It may sound idealistic. But it's the way things work in the modern software world. This is how Facebook and GitHub operate, and both are enormously successful companies. The editor nerds have coded their way to the center of the software universe.