Software is a very abstract and complex concept, lines of code, diligently written by software developers, compiled into an executable, running a certain task or providing a certain service. Seeing the use case in action can make the purpose of it tangible, but software itself has no physical shape, no physical size, thus remains intangible.
If it comes cryptocurrencies, we're dealing with pure software projects that offer the discrete service of abstracting money and the transfer of value. One could say, that the Average Joe started evaluating and investing in software projects, which is exactly what we're all doing by investing in cryptocurrencies and ICOs. Thus I feel the urge to explain one crucial element of software projects, one of the most vital tools used for collaboration and management of code, which can also be used as an essential indicator for the assessment of a cryptocurrency project. The thing I'm talking about is GIT.
What is GIT?
GIT is an open source distributed version control system which was created by Linus Torvalds in 2005 and is used for small as well as very large projects. It is used to track and store source code and to improve collaboration within a team. Although GIT brings most value if used for tracking text-based files, in theory, it could be used to track changes in any set of files. Linus Torvalds also described the tool as "the stupid content tracker".
How does it work?
If we imagine "the stupid content tracker", there must be some sort of root directory, a point from where we start, where all the files of the project will be stored. From that point, GIT will watch all the changes that happen to files within this root directory and all subdirectories. There is the concept of branches or forks, which are utilized to implement and test changes, in order to reduce the negative impact on the master branch which should remain stable and only contain working code. Taking the Bitcoin repository as an example: The code on the master branch "is the real bitcoin", it's the version of it which is compiled, released and distributed on the live system. After changes are implemented and tested, they can be merged to the master branch by something called a pull request. This pull request gives others the possibility to review the implemented changes and adjust things if necessary before the merge with the master branch takes place (a pull request can also be rejected). And even if something goes wrong, any change to any file is tracked, providing transparency about what was changed, information about who changed it and the possibility to revert the change if necessary.
What is GitHub?
While GIT is a distributed version control system, capable of managing code, there is a need for a service that offers accessibility from anywhere, in order to facilitate collaboration on a global scale. This is exactly what Github offers.
"GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere." - Github.com
There are other providers that offer this kind of service such as GitLab or Bitbucket and often they extend their scope by implementing useful visualization of a git repository or even help by providing tools to design efficient workflows or integrations with other tools (Project Management, Wiki etc.). Since GitHub seems to be the most prominent one in the crypto-space, let us have a short look at what insight you can gain about a project by having a look at its GitHub repository.
GitHub Features
First, you want to find the repository of the project, which is usually linked on the website of the project itself and/or on websites like coinmarketcap.com. For example, if you head over to the Bitcoin Repository on Github, the first thing you'll see is the main directory with all the files and when they were changed, including a readme section providing the most important information about the project. This might already give you an idea about the activity and number of contributors of the project.
A more in-depth view to finding out how active the project is can be found if we change to the "Insights" tab (BTC on Github - Insights) where all the information related to repository activity can be found.
GitHub Pulse
Pulse provides you with a short overview of recent activity as well as a detailed list, including all activities in a chronological order. Click here to get to the Bitcoin GitHub Pulse page.
GitHub Contributors
Gives you an idea about the Team and how active the members are over the course of time. Click here to get to the Bitcoin GitHub Contributors page.
GitHub Conclusion
By having a look at the GitHub repository of a project, you can gain additional insight and have a possibility to check whether or not a team is really working on the technology or if most of their effort and funds are put into marketing and a fancy website.
The 3 Minute journey through Bitcoins Github History
If you're completely new to the concept of GIT, this might still be a little confusing, which is why I like visualizations of all sorts of stuff. They help to make things tangible. This is why I chose to use Gource, to visualize the history of activity of the Bitcoin GitHub repository. It shows the files (circles), the directory/directory structures (lines) as well as the actors (manikins) and how they changed/participated over the course of time. In my opinion, this provides an excellent high-level impression, of what is happening in a software project and also shows the huge number of contributors involved and needed for such a project to be successful.
Summary
I hope I was able to provide you with an idea about what Git and GitHub are and that you gained some insight into this aspect of the craft called software development. Also, I hope you enjoyed the 3 Minute journey through Bitcoins GitHub repository. If you want me to visualize other projects, just leave a comment containing your project of choice.
Let me know what you think and leave your questions, feedback, and comments below.
Thanks for reading!
Sources and Additional Information
- Git
- The world's leading software development platform · GitHub
- Hello World · GitHub Guides
- GitHub - bitcoin/bitcoin: Bitcoin Core integration/staging tree
- The only single product for the complete DevOps lifecycle - GitLab | GitLab
- Bitbucket - the Git solution for professional teams | Atlassian
- Gource - a software version control visualization tool
- Cryptocurrency Market Capitalizations | CoinMarketCap
@sblue, thank you for supporting @steemitboard as a witness.
Here is a small present to show our gratitude
You can click on your award to jump to your Board of Honor
Once again, thanks for your support!