Any programmer worth their salt knows that source control is crucial. The most obvious perk  is allowing you to securely store your code in a safe place. It doesn't stop there. Having good source control makes it easier to experiment with new features without worrying about irreparably damaging your program. Source control is something we all should do.

But regardless of what Version Control System (VCS) you use, you have to think about where you intend to store your code. It's likely you've have heard of GitHub. That's not surprising. GitHub is used by individuals and enterprises to host code, collaborate on documentation and track issues. It has some pretty big names using it. It's a pretty big deal.

But have you heard of BitBucket? You should have. BitBucket has been around for a long time, having been founded in 2008 and bought out in 2010 by Aussie tech giant Atlassian after having developed its own committed contingent of die-hard fans. But is it a worthy competitor to GitHub? And more importantly, is it any good? Here are four reasons you should consider using Bitbucket.

Note: BitBucket has pricing plans scaled for users. It is totally free for 5 users.

You have greater choice in what VCS you use.

iPhone or Android. Chrome or Firefox. Vim or Emacs. Geeks don't agree on much. Despite a tendency for the cerebral, the same is also incredibly true of software developers.

To many, espousing a preference for Mercurial over Git is almost like saying you enjoyed Gigli. Likewise, saying that SVN is better than Git will earn you some dirty looks from others. Yep. The topic of what VCS is the best is incredibly controversial.

VCSs in short are the mechanism you use to store code in a safe place. Each system does things in a slightly different way, and it goes without saying that coders are prepared to defend their favorite VCS to the death. Mercifully, BitBucket gives you a bit of flexibility with how you store, branch, and manage your code and allows you to choose between Git and Mercurial. As you can expect, each have their strong points and their not so strong points.

Blogger Patrick Thompson described Git as being a bit like MacGuyver -- bringing in as many features as possible, and allowing the user to create their own source control workflow -- and Mercurial as being like James Bond. Fast, accessible but maddeningly inconsistent.

You can read this as reason one. Atlassian have taken a bit of a laissez faire approach and haven't presumed to force you to favor one VCS over another. This is a huge bonus to those who can't grasp the syntax of Git, or just prefer using a familiar product.

You can have as many private repositories as you want.

Sometimes you want to show the world what you're working on. Perhaps that explains the rise and rise of GitHub, and its status as ground zero for open source code.

But what about the stuff that you don't want to share with the world?

If you work as a freelance developer, you will undoubtedly want to keep some stuff private. You'll definitely want to avoid sharing the proprietary work you have done for clients. If you use any API keys or secrets in the stuff you make, you'll want to keep them hidden from prying eyes also.

bitprivate

It is here where GitHub falls short. Sure, I suppose you can always fork over some cash each month for a handful of private repositories.

This is reason two for checking out BitBucket, which offers unlimited private repositories with as many as five collaborators. All totally gratis.

You can trust it.

Back in the day, SourceForge was the king. Developers flocked to it for its free hosting (then a novelty) of code and binaries. A lot has changed since then. It has seen an exodus of users and developers and has been bought out by new owners who have made some questionable decisions with their latest acquisition.

According to Justin Clift, writing on the Gluster blog.

"Dice, the new owners, strongly encourage the top projects to use a new (closed source only) installer that pushes spyware / adware / malware. … With their recent changes, users downloading from SourceForge now receive a special closed source installer which attempts to foist unrelated third party software onto them."

This is reason three for trying out BitBucket. Atlassian is no fly by night venture. They've been around the block a few times, having released some incredible products that are used by hundreds of thousands of people and garnered a great deal of goodwill from a notoriously fickle developer community. With that in mind, it doesn't seem likely that they'd compromise the quality of product in order to make a quick buck.

"There's an app for that"!

BitBucket might not be GitHub, but that doesn't mean that it's a barren, unloved wasteland of a product. There is an active community who make and maintain a set of applications that use and extend BitBucket.

Android has Bitbeaker; a simple app that makes it easy for you to look at your repositories and track changes and issues while on the move.

bitbeaker

For OS X (and Windows), there's SourceTree. Like BitBucket, it's developed by Atlassian. It offers beautiful visualizations of your projects, and a nice graphical interface for your Git and Mercurial repositories.

sourcetree

This is reason four. A popular website having a desktop or mobile application isn't exactly novel. However, it is the quality of the third party apps that I feel are a distinguishing feature of this Antipodean source management product.

Drawbacks

BitBucket might have a lot going for it, but it's hardly the bustling open source metropolis that GitHub is.

When you write open source software and release it with a permissive Open Source license, you are effectively making a statement that you want your code to have an audience. Moreover, you are stating that you want to display your fluency and ability as a programmer to the world. You want people to see what you're working on.

GitHub gives you that audience. It has effectively became a byword for 'open source', having effectively enticed the folks behind Ruby on Rails, the Linux Kernel and BootStrap, the front end toolkit that powers many millions of websites. In addition, it has pioneered some incredible social features too, allowing you to follow, star and like, just as you would on Facebook. It's coding, but with an emphasis on interactions, companionship, and community.

Sadly, these attributes are not as pronounced on BitBucket as they are on GitHub. However, some might say that the flexibility of BitBucket and its free private repositories make up for its social shortcomings and its lack of affection in the open source community.

Conclusion

BitBucket is a tool that I'd heartily recommend, and I absolutely adore using. It's not GitHub, but it does have its place. What do you use to store your code? Would you consider giving BitBucket a go? Let me know in the comments.