DaedTech

Stories about Software

By

Why is Github Taking over the World?

Editorial Note: I originally wrote this article for the SmartBear blog.  Click here to check out the original.  If you like this content, take a look around at their offerings and their posts from other authors.

There’s a word out there that you’d be a lot more likely to hear from journalists, pundits, and authors than you would from techies: zeitgeist.  The dictionary definition of the word, “the general beliefs, ideas, and spirit of a time and place,” is straightforward enough.  But when used by the people I mentioned, zeitgeist, as a descriptor, imparts gravity on the thing it describes.  It I say that Github captures the zeitgeist of the programmer world of the 2010s, I am thus saying that Github is at the absolute core of the software development universe.

And I do say that.

If you’re not familiar with Github, I’ll offer a brief description.  It is a website that wraps a software version control system called “Git” and allows software developers to host their code online for free (though there are paid models available).  If you’re a software developer, Github is a repository for you to store, exchange, trade, and talk about code.  This may not sound like the stuff of which zeitgeists are made.

The sheer, raw popularity of Github alone doesn’t explain this classification, either, though it is popular.  Alexa, a web analytics company (not to be confused with Amazon’s Echo personality), ranks Github as the 83rd most popular site on the planet, as of the time of this writing.  That’s particularly impressive when you stop to consider that Github’s audience is the slice of software developers that feel like freely exchanging source code with one another.  Other popular sites occupying top rankings, like, Facebook, Amazon, or Google, on the other hand, have an audience of literally everyone on Earth.

It isn’t the improbable, raw volume of traffic to Github that elevates it to Zeitgeist level, however.  It isn’t even the growth or the market cap of the company or the number of contributing developers.  Those things alone can’t explain why Github is a zeitgeist — why it’s taking over the world.  To do that, let’s look at it in a bit more detail.

From Improbable Beginnings

Let’s take a little known, somewhat pedantic approach to storing code, wrap it in a cute user interface package, sprinkle a little social media on it, compete with an entrenched market dominator (sourceforge), give it away largely for free and change the world!

If I could go back to around 2008, when Github was just starting out, I can’t say I’d be clamoring at the bit to become an investor.  At least, not without 20/20 hindsight.  It doesn’t really sound like a game-changer, and yet that’s what it became.

And yet, if you look at tech trends, the makings were there, if subtle.

Distributed Version Control for a Remote World

If you’ve been writing code for a long time, you no doubt remember the bad old days of remote work when it comes to source code version control.  At the time Github first started attracting notice, centralized version control schemes were the standard, and when you were somewhere the source control server wasn’t, things could get painful.  I remember using a tool called Rational Clear Case that was setup in such a way that it took me most of the morning to commit a few files to source control if I was working from home.  As bad as that sounds, it could be worse — if you were on a plane or somewhere without internet access, you wouldn’t be able to work at all, unless you had planned ahead of time to acquire an “offline” version of the code.  And then, getting it back online could be quite painful once you re-connected.

CodersBlock

Git, the version control system upon which Github is based, changed all that with distributed version control.  Git was the version control of Linux — a decentralized, democratic tool that could support ad-hoc, global collaborations.  Github, the website, wrapped Git up and encouraged you to work with the full safety of source control wherever you were.  And, don’t worry, they reassured you, it’ll be a breeze to sync back up when you’re connected again.  And it was.

Github offered remote coding to an increasingly remote workforce.

Social Coding

An early motto of Github was, “social coding.”  In today’s world of ubiquitous technical meetups, conferences, hackathons, and generally extrovert-friendly activities, the idea of social coding seems sort of like a given.  But if you were to go back 10 years and examine the anatomy of a user group, you’d discover a much more reserved affair, with a much different demographic.  They’d be drinking Diet Coke instead of craft beer, and they’d have antiseptic discussions about industry trends.

Is it a coincidence that the show, “Big Bang Theory” arrived roughly at the same time as Github and that both rocketed to popularity?  Yes, absolutely.  It’s a total coincidence.  (If you thought I was going to say otherwise, gotcha!)  But the coincidence itself offers not one, but two data points on the rise of “geek culture.”  As the demand for software developers (and their pay) have skyrocketed, “geek culture” has gone incredibly mainstream.

Github greased the skids for that.  Nobody had thought (to my knowledge) to marry the concept of a social network with the concept of code, but they did.  They made encouraged you to share source code — to take pride in it — and to follow other developers.  What’s more, they brought the young, high-energy culture of Silicon Valley to the internet for broad consumption, and invited developers around the world to join in.  Let’s all come together, code, and be proud of who we are and what we do.

On the Shoulders of Giants

15 years ago, open source software was a radical idea, put forth by fringe participants, communities of hackers, and academics.  Thinking back to early in my career, the idea of open-sourcing a side home automation project of mine was crazy.  What if it started to take off?!  I’d be giving away my precious, million dollar idea!

Nobody thinks that way anymore, outside of enterprises frozen in amber (whose code, ironically, no one would want).  Your value is not in your code itself, but in your ability to write code, your branding, and your community presence.  If you can point to a popular, open source, expert system that you’ve written, you can secure $200/hour consulting gigs.  Angrily smacking someone looking over your shoulder at your code is no path to profit.

Github itself was at the core of this movement.  You could realize the awesome power of distributed source control through a nice GUI and look cool doing it… as long as you accepted the premise that you had to share your toys (or pay a premium).  The surprising value proposition of Github turned out to be so high that people gradually released their vice grip on their code.

Taking Over the World

Github, it turns out, offered the promise of distributed effectiveness, sociability and personal cred.  Does this add up to zeitgeist — to taking over the world?  To answer that, let’s re-frame a bit.

Software developers demand the ability to work effectively from anywhere.  They have attained a coolness factor, and demand for them is so high that there is no need for them to guard their source code like squirrels preparing for winter.  Github is a good idea because it effectively captured what software developers really want and offered it to them pretty flawlessly.  Github is a zeitgeist that is taking over the world precisely because software developers are taking over the world and software developers really like Github.

newest oldest most voted
Notify of
Funbit
Guest
Funbit

It’s a pity that they don’t support anything except git. Not everybody uses git. They should have named the site codehub or something like this, it would prevent VCS war…

Dave Van den Eynde
Guest
Dave Van den Eynde

Everybody should use git.

Failing that, if you use Mercurial, there’s always BitBucket.

Funbit
Guest
Funbit

Everybody should have a choice. Github just does not give that. 95% of Github users have never worked with anything except git, just because they heard it is the “best” thing to use. So it is the Github who made git popular, not otherwise. I don’t want to say that git is a bad VCS, but nobody should say it is the best of all VCS, because it depends. BitBucket is good, but unfortunately most of folks HAD to move to Github just because it is the place where “EVERYBODY” keeps their open source projects now (meaning that if your… Read more »

Dave Van den Eynde
Guest
Dave Van den Eynde

Everybody should use git. It’s the best version control system for the majority of developers. That is my opinion. Everybody does have a choice. A choice to use GitHub or not. GitHub has the choice to offer something other than git or not. That is their choice. People that move their project to GitHub don’t move it because of git. They move it because GitHub offers social coding on top of git. A distributed version control system is the best way to do that, and git happens to be the most popular DVCS in existence. An open source project can… Read more »

Ziv
Guest
Ziv

git has some big flaws that are by design and make it unfit for some developers. It becomes very slow on large enterprise projects that have thousands of files with histories of years and it does not handle binary files very well which makes it a lesser choice for game development. Not everyone should use git, everyone should know several tools and learn what is the best case for each.

Andrei Dragotoniu
Guest

well, actually it does handle binary files very well, you just have to understand .gitattributes. I do like GIT and I have used quite a few source control systems so far, SourceSafe, TFS, Mercurial. So far Git does the best job and i like mainly because of all the tools it offers. Pull Requests for example are amazing. Where I work we have huge projects in TFS and the same in GIT. The ones with GIT are much easier to use,there’s no locking, no checking out files and then you try to discover in which workspace someone checked out a… Read more »

David Boyle
Guest
David Boyle

This is a pattern in discussions of GIT: someone suggests it exhibits some weakness; someone counters that there’s some extra bit of GIT lore that will banish that weakness. I shouldn’t have to learn about .gitattributes in order for GIT to handle binaries well. I’ve never had to learn about any special attributes for any other source control system in order for it to work well.

The fact that I need to know about low level, implementation details is a major problem with GIT, in my view. In the dictionary, under “leaky abstraction”, it says “See GIT”.

Andrei Dragotoniu
Guest

you do have a point there and I suppose it could be more obvious or just do it by default unless there is a reason not to. So far however, GIT does the best job of all the systems I’ve used to date. Doesn’t mean we need to stop here, I am sure something better can still come along

BEN SAID Saameh
Guest
BEN SAID Saameh

i found that singleton design pattern is probited from inheritance .
why that ?
http://www.designpattern-tutorials.com/SingletonDesignPattern.html

Erik Dietrich
Guest

It certainly has a lot to offer, but I do worry at times about the apparent universal consensus across the industry. The last time I remember the wide world agreeing so much on computing technologies was Microsoft Windows XP and Internet Explorer 6. There was a time when that was just “the right answer if you’re involved in business in any way.”

If everyone collectively decides that source control is a completely solved problem and that git is the solution, I guess I worry about the impact on future innovation.

Erik Dietrich
Guest

From their organization’s perspective, I think the choice makes sense. I would attribute their success in large part to choosing to niche, rather than providing all solutions to all people.

What I’ve observed is that groups (especially startups) do well in existing markets to be quite specific. At the time of Github’s founding, similar things existed, so they needed to distinguish themselves. Putting git into their name certainly helped accomplish that.

Grumpys view
Guest
Grumpys view

i dont use Github because everybody is using Github.

Carlos
Guest
Carlos

The problem with Github is that they use Git.

Tim Williams
Guest

Carlos, out of curiosity, what would make it better? What exactly are the pain points in a large video game project that you wouldn’t have in other software projects?

Sven Erik Knop
Guest
Sven Erik Knop

We (Perforce) work with the majority of games developers, so while I do not develop games myself I have some insight into what a games developer is facing. The sources for a typical console game are now in the order of 1 TB. That is head revision, not total history, which can easily exceed 100TB for a single game. Now, this is HD (1080p) quality – 4K is around the corner and will more than quadruple the amount of storage required. Spare a thought of went into a game the next time you download a 25GB binary, that is just… Read more »

Carsten König
Guest

understandable – but I guess a game is not really opensource and you probably don’t won’t to see your files on some social-xyz stuff anyway right?

So your pain-point is that new employees don’t know how to use anything else?

Sven Erik Knop
Guest
Sven Erik Knop

Correct.

Game developers tend to know Perforce since everyone is using it in this space. But other software developers fresh from University usually only know SVN (which shares similarities with Perforce) or Git.

This is – in a way – a great improvement. When I started with Perforce 10 years ago, graduates from University had no idea about versioning. At least they now know the principles and care about their commits.

Sven Erik Knop
Guest
Sven Erik Knop

What always surprises me is how GitHub came to be the proponent of Open Source, yet their own code is closed source and very jealously guarded. How does that square?

jbcksfrt
Guest
jbcksfrt

I am not sure GitHub is the proponent of open source (or that it should be for some reason). It offers private repositories for paying customers.

Sven Erik Knop
Guest
Sven Erik Knop

Yes, this is true – but that is not the argument of this post, unless I missed something? I am simply saying that there are other tools out there fulfilling a similar purpose like GitHub, but are nonetheless true open source products. GitLab springs to mind.

jbcksfrt
Guest
jbcksfrt

You asked how their closed source code “squares” with them being the proponent of open source code. I challenged the premise of your question, not the argument of the overall post.

Sven Erik Knop
Guest
Sven Erik Knop

Ah, but this is the argument that we (Perforce) face all the time : we are not open source but a commercial product, so therefore we cannot possibly support Open Source. Truth is that the majority of our tools are open source, including the command line client.
So I am glad to hear that you argue that a closed source tool can well support Open Source 🙂

jbcksfrt
Guest
jbcksfrt

Agreed (I think).

Erik Dietrich
Guest

I suspect that there’s a parallel to Facebook in that their interest (and profitability) is in *others* sharing freely.

Alex
Guest
Alex

GitHub SJW

Erik Dietrich
Guest

“SJW”?

Tim Bailey-Jones
Guest
Tim Bailey-Jones

Social Justice Warrior? (just a guess)

Timothy Boyce
Guest
Timothy Boyce

I wouldn’t agree with open source being seen as a radical idea 15 years ago. Perhaps to big (slow) companies and those out of touch with the programming community it still was, but Linux and other open source software was well established by then.

Erik Dietrich
Guest

http://www.nytimes.com/2000/08/28/business/code-name-mainstream-can-open-source-bridge-the-software-gap.html “”Open source software” seems a radical approach indeed. The term stands for both an iconoclastic philosophy and a software development model: software is distributed free and its ”source code,” or underlying instructions, are published openly so that other programmers can study, share and modify the author’s work.” 15 years ago I was finishing up my undergrad degree, and we were using Linux and Java, so I’d certainly agree that it was common enough to encounter for a techie. But the idea of building on top of it commercially was a radical one. Linux was for hobbyists; when you wanted… Read more »

Jake Wengroff
Guest
Jake Wengroff

Great piece. I guess I’m lucky I only started to learn to code 2 years ago, so I never had to experience the ‘bad old days.’

Erik Dietrich
Guest

Thanks!

And, you still found ways to get things done — you just didn’t do it as fluidly with version control.

j
Guest
j

You probably haven’t seen how GitHub is losing market share to GitLab? Mainly due to licensing and in-house deployments, but not only about that, it already provides more features than GitHub. Not even mentioning few design flaws well discussed for more than 5 years already (just google). GitHub is nowadays a competitive because of its popularity, that’s it.

Erik Dietrich
Guest

This reminds me a whole lot of the argument throughout the 2000s that every year was going to be the year of Linux. It was a better OS, more secure, with better features, open source, better pricing, and getting more and more adopters each year… and it just never materialized. Maybe a fast follower can unseat an established market dominator. But that’s especially tough in the world of social. You state offhandedly that Github is appealing because of its popularity, as if that were a trivial detail. In the world of social, popularity isn’t a passing fad — it’s THE… Read more »

GitPlan
Guest
GitPlan

I absolutely agree. Using Git and GitHub is considered to be a necessary professional skill since they offer a lot of features for collaboration and issue management. If you look at developers job descriptions, you will find something like Experience with GitHub is a must. Luckily, huge amount of tutorials are available online. Love Github!