Saturday, August 10, 2013

GitHub: The Software That Builds Software

Complex, specialized tools are often made from simpler ones. Machines are built with power drills; software is built with code editors. And so the future of computing depends partly on coding platforms in much the same way that the future of the movie industry depends on camera technology.

Over the past five years, a rapidly growing San Francisco company called GitHub has become a dominant player in software development, largely because it has fine-tuned the tools used for “version control,” which is the process of logging all the changes made to a set of documents. Programs are fragile enough that even a small change—a single misplaced semicolon, for example—might cause it to crash. GitHub keeps track of those semicolons, and who put them where.

Last year, GitHub’s financial projections and cultural influence were enough to secure a hundred-million-dollar investment from Andreessen Horowitz, the Silicon Valley venture-capital firm that previously invested in Twitter, Facebook, and Skype. (It is Andreessen Horowitz’s single biggest investment to date, valuing GitHub at roughly seven hundred and fifty million dollars.) Today, GitHub has three and a half million users working on close to seven million projects, and it grows by ten thousand users on a typical weekday. You can find projects written in almost any programming language in existence, from common Web development languages like P.H.P. and JavaScript to the ancient low-level language Fortran, and even LOLCODE, an absurdist programming syntax jokingly assembled from LOLcat captions.

The GitHub Web site is built around an independent piece of version-control software called Git, which was created by the developer Linus Torvalds. Even before Git, Torvalds was a nerd hero. He created Linux, which is one of the most important operating systems in the world. It runs on more kinds of hardware than any other computer operating system, and it is a dominant platform for Web servers and supercomputers; it is also widely deployed on common devices like wireless routers, cell phones, and even TiVos. It is the crown jewel of the open-source-software movement, a school of thought in which even the most valuable code in a program is freely shared so it can be collaboratively improved by many developers at once.

With so many programmers working on it, building Linux is incredibly complicated, and by 2005, Torvalds and his team had decided that the existing version-control systems were inadequate. They decided to write their own. The result, which was named Git after the insult in British slang, was much more powerful than the other available options.

In other development systems, there is often a hierarchy of gatekeepers who delegate access to chunks of code. In Git, every developer working on a project can have full access to every part of the code and its history. The best ideas and the strongest code for any aspect of the project can bubble up to the surface and be approved, no matter where they originate, dramatically flattening and democratizing the development workflow. “In order to avoid all those stupid political issues, you have to basically allow anybody to make changes, and then accept them based on technical merit after the fact, rather than on some pre-approval process,” Torvalds told me via e-mail. (...)

Thinking about GitHub as a social product rather than simply a software-development platform is perhaps the best way to consider its future: the big problem GitHub solves is about collaboration, not software. “For now this is about code, but we can make the burden of decision-making into an opportunity,” Preston-Werner, the site’s founder, told the New York Times last year. “It would be useful if you could capture the process of decision-making, and see who suggested the decisions that created a law or a bill.”

Those seem like lofty aspirations, but in early May, the start-up RapGenius, which originally crowdsourced explanations of lyrics from hip-hop songs, announced its expansion into breaking news, using the same text-annotation platform it had been refining for years. RapGenius could prove useful for parsing complicated legal documents, for example, and if rap enthusiasts can build a useful platform for legal analysis, why can’t coders?

by Vijith Assar, New Yorker |  Read more:
Image: Tom Preston-Werner, the C.E.O. and co-founder of GitHub. Photograph by Jin Lee/Bloomberg/Getty.