Oh, GitHub, we knew ye … pretty well, actually, over the past decade. At least programmers did. To us you’ve been comically unavoidable, from your “Octocat” mascot to the fake, fully furnished Oval Office at your San Francisco headquarters, complete with a special Octocat-emblazoned rug that proclaimed “United Meritocracy of GitHub.” Of course, that rug came up a lot when people debated the concept of meritocracy. And part of the reason they were debating it was the internal investigation into “sexual or gender-based harassment or retaliation” that led one of your co-founders to resign (your investigation found “no evidence to support the claims” but did uncover “mistakes and errors of judgment”). The company seemed to normalize after that, though we also knew you’d been looking for a new boss for a while. Congrats on your $7.5 billion purchase by Microsoft Corp.!
To civilians, it can be baffling what in God’s name GitHub Inc. does or why it’s worth so much. The key thing to understand is that git is free software and GitHub makes it easier to use that software. Git keeps track of changes in sets of files. The first version, written by Linux creator Linus Torvalds, was released in 2005.
Git isn’t for beginners. You typically use it from a command line, as opposed to with a mouse. Want to start tracking changes? Go into any directory and type “git init,” and you’re off to the races. From there, git lets you get Borgesian about your files. Everyone can make his own “branch” (copy) off the master tree of code and change whatever the hell he wants without breaking anything—git keeps track of it all. This means everyone can have a copy of every change, and you can make tons of mistakes while coding and always have a giant infinite Undo button if you need it.
It’s great, but again, not for beginners. Enter GitHub in 2008. GitHub makes it easier for large, loosely coordinated groups of programmers—in corporations, for instance—to use git. It has a well-designed web interface. If you don’t think that’s worth $7.5 billion, you’ve never read the git manual.
GitHub rode the wave of git adoption to become the central repository for decentralized code archives. As a result, 27 million users maintain 80 million projects on it—some private and closed off, some open sourced, many abandoned after a weekend of inspiration. That’s a significant portion of the software in the world. Everybody uses GitHub. The likes of Google and Facebook Inc. use it to release code, as does Walmart Inc. Your company probably uses GitHub. It’s free to use; you pay for more storage and advanced features.
The truly huge thing GitHub does is called a “pull request.” I’m a programmer, and my boss says, “Paul, go update our mailing list component to be GDPR-compliant.” I download all the recent changes to our mailing list code, create a new branch called “gdpr,” then get to work. A week later I’ve got my code basically functioning. I upload that branch back to GitHub and click a few buttons to issue my pull request. My team can see the work I’ve done, in shades of green (additions) and red (deletions). If they like the look of my changes they can approve them, and, if everything goes well, those changes will be merged right into the “master” branch. Built in is that Undo button: The old version, the new version, and my interim version are all right there if I need them. Nothing is erased. If something goes wrong, I can revert to an old version.
GitHub made the social dynamics of software development easier to manage and track
In the pre-git era, you updated your software annually and sent customers floppy disks. But if you’re running a big software platform, you might update your servers constantly—many times a day or every 20 minutes. You might have hundreds or thousands of people working on hundreds of code repositories in thousands of code branches—a huge weeping willow of code. You might have open source projects where total strangers show up, make their own changes, then issue a pull request back to you from out of nowhere. Could you use the strangers’ code? Sure. Do you have to? Nope. GitHub made the complex social dynamics around software development easier to manage and track.
That’s how code happens in 2018. The process used to be the sort of thing people did in slow and ad hoc ways, a few times a year, and only after a lot of infighting over email. Now the same process might happen 10 times a day, and the infighting is right there in the pull requests. Hundreds of people might be working on one code thing or 10 people on 100 code things. GitHub makes that doable. I can’t imagine life without it. I’d much rather tell a newbie to get a GitHub account than suggest she read the git manual. If all companies are becoming software companies, GitHub is a primary enabler.
A truly fun aspect of Microsoft’s acquisition of GitHub is that it was announced before Apple Inc.’s Worldwide Developers Conference. This is like when Passover overlaps with Easter in New York City. The WWDC, sacred nerd summit of Appledom, is where they announce things like a new “night mode” for the operating system and try to convince programmers that Apple Watch matters. But GitHub is nerd infrastructure. Huge portions of modern culture—Google’s TensorFlow machine-learning software, for instance, and even other programming languages, such as Mozilla’s Rust—run on code managed there. For Microsoft to trot this out during WWDC is a real thunder-stealer. It’s nice to see global-platform capitalism played with a little verve.
GitHub represents a big Undo button for Microsoft, too. For many years, Microsoft officially hated open source software. The company was Steve Ballmer turning bright colors, sweating through his shirt, and screaming like a Visigoth. But after many years of ritual humiliation in the realms of search, mapping, and especially mobile, Microsoft apparently accepted that the 1990s were over. In came Chief Executive Officer Satya Nadella, who not only likes poetry and has a kind of Obama-esque air of imperturbable capability, but who also has the luxury of reclining Smaug-like atop the MSFT cash hoard and buying such things as LinkedIn Corp. Microsoft knows it’s burned a lot of villages with its hot, hot breath, which leads to veiled apologies in press releases. “I’m not asking for your trust,” wrote Nat Friedman, the new CEO of GitHub who’s an open source leader and Microsoft developer, on a GitHub-hosted web page when the deal was announced, “but I’m committed to earning it.”
Git is one of those things that, in my experience, people who love computers … just love. In mixed company, it’s a terrible subject, but with another nerd over beers you could talk for hours, and I have, about what git did, what it means, where it came from, and how bad it used to be in the days of CVS (not the drugstore) and Subversion (which replaced CVS) and Microsoft Visual SourceSafe (which was a crime against software), and how git represents a way of seeing the world in a new way.
When you drink and talk about git, the conversation tends to drift into strange territories. If only everything worked like this! Why are we still sending files around via email? Why aren’t there multiple branching versions of everything? Why do we pretend that there’s any canonical version of anything? (Because we have to make money.) Git acknowledges a long-held, shared, and hard-to-express truth, which is that the world is ever-shifting and nothing is ever finished.
It’s always been this way. Computers are mercurial, but Microsoft strapped an operating system on top of them—first with DOS, then with Windows—and commoditized that processing power. The web was messy and fluid, and Google made it easy to search. The social graph is vast, so Facebook wrote a special database to make it easy to see your friends. The way you truly win big in software is to take something deeply abstract, weird, and confusing, then put an interface on top that makes it look like the most normal thing in creation.
I had idle fantasies about what the world of technology would look like if, instead of files, we were all sharing repositories and managing our lives in git: book projects, code projects, side projects, article drafts, everything. It’s just so damned … safe. I come home, work on something, push the changes back to the master repository, and download it when I get to work. If I needed to collaborate with other people, nothing would need to change. I’d just give them access to my repositories (repos, for short). I imagined myself handing git repos to my kids. “These are yours now. Iteratively add features to them, as I taught you.”
For years, I wondered if GitHub would be able to pull that off—take the weirdness of git and normalize it for the masses, help make a post-file world. Ultimately, though, it was a service made by developers to meet the needs of other developers. Can’t fault them for that. They took something very weird and made it more usable. Microsoft gets that, and my guess is that GitHub will still be humming along in some form come 2048—this is an industry that can think in decades. Underneath all that commoditization, the weirdness remains.
Paul Ford is CEO of Postlight, a digital platform and product shop in New York City. He’s on Twitter at @ftrain and on email at firstname.lastname@example.org