I often get weird looks from people when I tell them that I don't personally use GitHub for any of my projects, both personal and professional. Aside from having the celebratory 'Hello World' application that hasn't been updated in 3 years, my GitHub profile sits predominantly dormant. And there is a reason for that.
You see I've been programming roughly since 2002. And professionally since 2008. And the repository landscape back then was much different than it is today, where now essentially GitHub runs the market. Exact numbers are hard to come by, but according to Datanyze, GitHub sits at a respectable 17% of market share with others taking in at most 9%.
When I first landed my big junior programming job, the company that I worked for used Visual Source Safe (VSS) to handle any and all code storage. And if you're wondering why GitHub wasn't their choice, it's because GitHub didn't exist during that time. Or I should say, it was just barely coming out as it was released in 2008. And every developer knows that when software is first launched, it's probably not the best that it can be. So it took some time for it get popular.
Which was totally fine, because there were a slew of other options to choose from, such as Visual Source Safe, Mercurial and custom Git servers that companies implemented in-house. Some companies (with few developers) managed to get by, by just copying projects onto hard disks. They had a server in the basement, a folder with the website, and changes were made on the fly right on to production.
Thankfully we've solved for many of those issues, and we no longer have to spend months looking for the folder with the backed up code on old decommissioned servers.
Microsoft eventually deprecated VSS in 2012 and that was the last time that I personally got to work with or even see VSS in action. And I personally liked using VSS. It had a different checkout mechanism than Git has which avoided merge conflicts altogether and overall (per Microsoft) I didn't have to worry about complex commands as everything was done through the user interface.
My next coding job though was for a very large tech company who maintained dozens of websites all in-house with custom servers, data farms, CDN's and everything else IT related. Also at this time, GitHub was just making its way out into the world, so companies were still somewhat slow to adopt it.
The company relied on a very custom Git server integration maintained by a very serious team of system admins. Typically, or always pretty much, the developer doesn't really have a say about which code storage solution a company will be using. Most companies have secure policies and protocols in place to ensure that proper guidelines are being followed and very little of that has to do with the new dev hire.
Regardless of whether this company was using GitHub however, they were using still Git. Meaning pretty much everything, except for the fancy UI, was in place still.
I personally did sign up to GitHub on day 1, just to check things out. But I also wasn't going to drop everything and migrate all of my projects over as I didn't really see any benefit overall.
During my next few jobs I relied on a variety of other code storage solutions, such as BitBucket in order to track code changes. And I personally began to adopt BitBucket as well with my own personal projects.
Alot of companies like BitBucket for more enterprise level projects.
For one, BitBucket is owned by Atlassian, meaning that it integrates well with other Atlassian projects, such as:
- Jira
- Confluence
- SourceTree
- Trello
- Many more
And for companies who are already heavily vested in that ecosystem, BitBucket is the most obvious choice.
I currently use BitBucket in my professional life as well. And if you're thinking "Then how will people see how much work you've done?", then I can say that this isn't a concern at all because every repository that I work on is private. And the people that do see my commits, are my employees, which is way more valuable than a stranger on the internet.
BitBucket early on was one of the few code storage solutions that offered free private repositories, which made it very enticing for small to mid-sized companies to use. And their pricing levels have remained super competitive since day one.
Many younger developers currently might have forgotten that GitHub also offered private repositories, but at a price. And it wasn't until Microsoft purchased GitHub that we eventually got access to free private repositories. But that definitely means that developers during this time, were probably sticking to free to use solutions taking away some of that market share.
So am I saying don't use GitHub and use BitBucket instead? Well. No. Not really. GitHub has come a long way in the past few years. Not only has it become a home for open-source projects, but it's also starting to focus more on the corporate sector, which for me personally is the most relevant.
And like I said earlier, odds are that the companies that you will work for will already have solutions in place that you pretty much have to follow.
So while GitHub is probably the most popular cloud code repository to date, much of that has to do with the fact that every student, hobbyist, curious bystander, etc has made an account and has some default cloned template as their first project.
But if you look at the real-world corporate sector, I'd wager that GitHub loses much of that advantage.
And that's why I don't use GitHub personally. It's not because I hate it or find it useless, not at all. It's just that there are many more solutions out there when it comes to securely storing private coding repositories and I'd personally recommend every developer out there go and try a few just to personally see the differences themselves.