Know your history — How social coding changed the developer community
As our tech history series winds down, we want to take a moment and focus on a topic that has shaped how code is reviewed and how developers collaborate nowadays. Open your textbooks to chapter 11 – class is in session with the birth and evolution of social coding.
Collaboration and version control via git or Mercurial has become the norm to such extent that we hardly ever look back to the days the concept of social coding simply did not exist. And it may seem like a century ago but, in fact, social coding and its “parent” git are just 13 years old!
Today’s class focuses on the story behind social coding, its birth, and evolution.
Open your textbooks to chapter 11 – class is in session!
Version control before social coding
Version control is definitely no biggie these days with multiple git platforms offering a plethora of options for reviewing code. But how did developers use to review code before git?
Its name was CVS! Short for Concurrent Versions System, CVS was the very first second-generation version control system and the most popular version control system for about a decade until it was replaced in 2000 by Subversion. But even then, Subversion was supposed to be “CVS but better,” highlighting how dominant CVS had become throughout the 1990s.
CVS was first developed by a Dutch computer scientist named Dick Grune in 1986, as a solution for collaborating with his students on a compiler project. With CVS, programmers could now edit the same file at the same time, merging their edits and resolving any conflicts later and it that sense it was very much like Git, which also works according to an optimistic model.
But the list of similarities between CVS and git starts and ends here!
The birth of git
As with many great things in life, Git began with a bit of creative destruction and fiery controversy.
This is the most iconic quote that describes the beginning of the new era for collaborative coding.
It all started with the Linux kernel community. For most of the lifetime of the Linux kernel maintenance, namely the period between 1991 and 2002, changes to the software were passed around as patches and archived files. In 2002, the Linux kernel project began using a proprietary DVCS called BitKeeper. That is until 2005 when Bitmover, the company behind BitKeeper announced it would discontinue its free version.
This turn of events prompted the Linux development community to develop their own tool based on some of the lessons they learned while using BitKeeper. And so git was born! Its initial development is said to have taken a few days!
The birth of git was not the single piece of innovation released following the announcement of Bitmover. Mercurial was another a distributed revision-control tool that came to life in 2005. Both tools, Mercurial and git, came to fruition, but git was the one that became not only the kernel team’s version control system but also the system used by the vast majority of developers.
The ‘parent’ of social coding
When Tom Preston-Wernera and Chris Wanstrath started working on GitHub in late 2007, git was barely known as a version control system and there were no commercial git hosting options whatsoever. And so GitHub was born in order to offer developers the option to host code securely and manage commits to code in a proper manner.
It was not long before the adoption of GitHub for managing open source projects skyrocketed. And it was because of that paid git hosting became a viable option and paid subscriptions made the project profitable.
Now, pretty much everyone hosts their open source projects on GitHub, including top companies like Google, Facebook, Twitter, and even Microsoft!
And slowly GitHub became the new Facebook for coders where instead of posting pictures and life events people post code for projects and your fellow developers comment, request features and fork the code to suit there needs. If you look at the top 100 sites, you’ve got a handful of social sites, thirty flavors of Google with national footprints, a lot of media outlets — and GitHub.
Brian Doll, Vice President at GitHub
Now to be fair, GitHub is not the only git platform out there. Giants like GitLab and Bitbucket are definitely high-quality git platforms.