There is no "decentralized protocol" in git. Changes to history are local. You then convince a remote to accept your development history as truth. I feel that you must miss the point of git's distributed and decentralized nature to say that a popular service like GitHub is detrimental to its ideals.
The sense in which git is decentralized is that in order to develop, you need a a full copy of the development history up until the point at which you want to contribute. You then create a history that is unique to you and maybe you push this to a remote at some point. Insofar that your history is shared, there is no difference between the repository at a remote (or an archive etc.) and the repository you and other developers have. Insofar that your history isn't shared, the workflow is entirely decentralized, enabling a distributed development process. Git isn't decentralized to satisfy some lofty ideal, but because this enables a convenient workflow.
A side effect of this is of course that GitHub going down forever isn't the end of the world in terms of git, because anyone interested in the code probably has an somewhat up-to-date copy of the development history that they can push to another remote or continue working on for their own intents uninterrupted by such an event. But that's a side effect IMO and not the most valuable sense in which git is decentralized. The loss will primarily be in git non-goals like discoverability, issue tracking and facilitation of the pull request workflow that GitHub offers. As far as I'm concerned, those are the only things I'm placing bets on that may result in a loss to me if GitHub dies.
I'm not saying that your claim is wrong, rather the opposite I believe it's holds true in the present. Computer Information Systems are reliant on larger economic forces. In many cases centralized systems are not better on a purely technical basis, but rather are better at attracting capital. However there are undoubtably systems of human organization and resource management that would change the fundamentals assumptions behind this.
Sorry for the misunderstanding. My reference to capitalists was a general point and not related to anything specific you wrote. Others in the thread mention capitalists so I just added it to my reply for color.
>However there are undoubtably systems of human organization and resource management that would change the fundamentals assumptions behind this.
I appreciate you bringing up Conway's Law as an explanation but I'm not fully convinced. I think there's an even more fundamental force than any artificial human organization such as Conway: if a bunch of humans don't want to do something , it creates an opening in the market for another group to do it instead. If that "something" is information technology related, it tends to create centralization.
A bunch of us don't want to set up a personal git server (for whatever reasons), and therefore, it creates an opening in the marketplace for Github to exist. At this primal level of desires, I don't think we have to bring in Conway's Law.
The context of my claim was about computer information systems becoming centralized. Yes, I understand we do have decentralized washer & dryer machines at home instead of everyone going to centralized laundromat. And building residential houses is still a very local business that resists a hypothetical giant national corporation that builds every house in America. Even Jeff Bezos' Amazon can't conquer 1000 different local building codes and construction techniques to build homes. However, the realm of information technology seems to behave differently.
I like to use the decentralized-Git-to-centralized-Github example because:
- programmers are the ubergeeks that would conceivably be the vanguard of decentralization because they are already predisposed to understand its benefits
- programmers (unlike mass consumers) have the technical know-how to implement their own git server if they wanted to and overcome any challenges of ISP NAT router.
And yet, the vast majority just think: "Hmmm... there's a free service that can host my repo which means I don't have to spend _time_ or _money_ to mess with any of that home setup?!? Sign me up!!!"
There is no "evil capitalist monopoly" that forced Git centralization on to resistant programmers. Instead, the programmers willingly put their code on Github because of the benefits. The economic forces overwhelm the ideals of the decentralized protocol.
As mentioned before, a git distributed protocol can't stop an actor from spending more money on that protocol than others. Github Inc spent extra money on Ruby programmers to create extra features such as issues tracking, web landing page, hosting disk space, reliable backups, DDOS protection, etc. Unequal spending by actors makes one node with better features more desirable than other nodes (such as a personal home node) and this starts a feedback loop of centralization.
To restate the claim earlier: decentralized computer information systems that need to share data is an unstable equilibrium because it depends on having free-will actors not spend extra money on a protocol to gain an advantage which is also an unstable equilibrium.
Even if this thread's article's vision of IPv6 improving direct connectivity were to happen, I still claim the overwhelming majority of programmers would continue to choose something like Github rather than host their repositories on personal home servers. Personally, I wouldn't want my repo to be traced back to my home's ip address. I don't want China DDOS'ing my home ISP connection if they don't like my iPhone app that monitors Hong Kong. If I was a female, I wouldn't want my home git repo to give away my ip address and invite digital stalkers. I'd use Github just for the ability to shield my IPv6 address.
If the programmers -- which we can think of as technical thought leaders -- aren't leading by example (with git) for decentralization, why would we realistically expect other mainstream consumers to adopt decentralized setups? Yes, there will always be decentralized communities but it will always remain niche.