Every program you’re running on your computer right now, from your web browser to the operating system itself, was built on a foundation of source code, the language in which software communicates. Much like human languages, code has developed into a vast variety of distinct languages and dialects. Certain languages might be better suited for specific sorts of software, but regardless of the language the fact holds true that all the different parts of the code to a particular program must come together to work as a synchronous whole.
This is easier said than done. Many modern software applications feature millions of lines of code, all of which have to be compatible with each other or else risk wrecking a part if not all of the application’s functionality. It was because of this sensitivity that making modifications to the “master” draft of a piece of software in development was a long, arduous process plagued by departmental paperwork and clearances. The aim of technologies like GitHub is to streamline that process and provide a means of source code management that brings transparency and efficiency to both business and amateur coding environments.
In The Beginning There Was Git
GitHub derives its name from the software it’s based on. Git is the work of Linus Torvalds, the Finnish developer behind the Linux operating system. Torvalds originally created Git in 2005 as a system for managing the development of the the Linux kernel. What Git does is provide “distributed version control,” a means of tracking all the changes made to the source code of an application during the development process.
The problem with Git, however, was that it lacked any distinct social or collaborative features. The database of changes is relegated to a single server or even a single computer. Additionally, the program offers few visual elements other than the basic command line. These were the shortcomings that the founders of GitHub set out to address with their own solution.
Tom Preston-Werner, Chris Wanstrath and PJ Hyett developed the idea for GitHub as a weekend side project. Preston-Werner came up with the idea of a web-based hub for all sorts of software projects, the common thread being that they were all managed through Git. The three founders worked on the program on Saturdays and had ample testing ground by deploying it for use at the small companies they then worked at.
GitHub became a formal company in 2008, and within a few years found widespread adoption among programmers for both their business and side projects. Far from being a tool solely for amateurs and small operations, today clients for the web-based solution include VMware, Facebook and Microsoft.
How The GitHub System Works
It’s easy to assume that, being a web-based solution with a strong social element and the talk about how anyone can propose modifications to a project, that the management process on GitHub is a chaotic nightmare. Quite the contrary, however, the editing process for a change of virtually any sort follows a simple three-step process:
- – Pull Request: Coder sends a “pull,” a request to modify a portion of code, to the project lead for a proposed patch.
- – Fork: If the lead approves, the section of code to be modified is “forked,” generating a copy of a specific patch of code from the source which they can then edit however they please without actually affecting the build.
- – Merge: If the modified material is approved to be part of the build, the project lead “merges” it into the source code as a patch, seamlessly integrating the forked material into the master version.
Pull, Fork and Merge are the three tools at the heart of GitHub, and part and parcel of what makes it such an intuitive solution for source code management. In addition members on a project can use their page on GitHub as a place for communicating and sharing ideas. Any patch either proposed or already implemented, can be commented on in real time, and previous, pre-merged versions of the build can be referred back to and compared to the most current revision.
Public open source projects, which can be viewed and edited by anyone with a GitHub account, are hosted free of charge. Closed source private projects command a monthly fee depending on amount of users and usage, a service that sees widespread usage in the business/enterprise sphere.
GitHub Into The Future
Since its founding in 2008 part of GitHub’s persona was its pride in being a completely bootstrapped company, funded entirely off the profits of its private project subscriptions. That all changed quite recently when June saw the announcement of a $100 million investment in GitHub by Silicon Valley venture capital firm Andreessen Horowitz.
The announcement came as a surprise in some circles as the company had turned down several venture capital offers in the past. Preston-Warner said, however, that a partnership with Andreessen Horowitz made sense owing to the two organizations’ similar views on the role of software in the world, especially in regards to open source.
The majority of the $100 million is said to be going to new staff to expand the company’s offerings to the business market like GitHub Enterprise. On that note, GitHub’s presence in the business software world seems set to grow.
Want to read more insider-perspective posts? Browse our entire archive of blog posts on insights gleaned from the software industry by visiting the Industry Insights section of the Business-Software.com blog.