14 ms·
It's ironic that Git was intentionally designed to decentralise the process of software development, so that there was no single "blessed" repository, but inste
by stupidcar 7y ago
It's ironic that Git was intentionally designed to decentralise the process of software development, so that there was no single "blessed" repository, but instead of a network of peers, each of which could evolve at a different rate and in a different way, with the community deciding which would "win" in terms of popularity.
And yet, via Github, the community has reinvented the centralised model of software development. For any project, there is a single instance that is the "blessed" version, by virtue of having the most stars or collaborators, or owning the associated package name. 99% of forks are nothing more than a place where you create a feature branch that you intend to PR to the blessed project.
I hope that, one day, somebody invents a git-based project ecosystem that solves the problem of decentralised project management. I don't know exactly what this would look like, but I think it would need to embed the idea of community and contributor consensus and democracy at a fundamental level, separating the concept of the project and project ownership from any individual fork.
- djangovm 7y agoi am wondering this probably because of two factors: 1. accountability: where do I go looking if something is broken? 2. and discoverability: where to search, and whom to believe as being the correct owner of the copy of the codebase. this is similar to block-chain currency (based on my limited understanding.. correct me if i am wrong). While it is meant to be decentralised, entities like coinbase effectively create a central entry/exit point somewhere in the ecosystem.
- dzmien 7y agoI immediately thought of Bitcoin when reading the OP. It can, and has been "hard" forked via miner consensus. That is, of course, one level removed from git, but I guess git"hub" could be more like gittorrent or something where instead of hosting a repo on one central server, the repo is hosted by a swarm and the version with the most seeds is the winner.
- albertzeyer 7y agoBut it does help for decentralized development, or not? And you have this single instance of authority in almost all cases? E.g. for Linux itself, you also have that, and Git was developed for Linux. I think the issue is more about how to structure pull requests, issues, etc., in a better way (maybe hierarchical), such that this matches the exponential number of more communication. GitHub does not help too much with this, but it also does not really fight against this. This is basically a problem every big project has to manage in some way. For comparison, I would look at other big projects like TensorFlow, Firefox, Chromium, Linux, CPython, etc.
- AmericanChopper 7y agoI think if your idea about decentralizing can accurately be described as fragmenting, then it’s probably not a good thing. I don’t know anybody that wants to have multiple separately maintained versions of the same project. When I use a piece of software, I want to have a good idea about how it will behave. I want to pick a project that I can be somewhat assured is fit for purpose, and that will provide stability. That’s why people investing in maintaining and using the most widely used and adequately maintained projects. If I don’t like the direction maintainers are taking a project in, then I can fork it. If enough people feel the same way as I do, then that fork might also become widely used and adequately maintained. There’s plenty of examples of exactly that happening, and I can’t see anything that’s undemocratic about it. Regarding having a centralised service like github, I can’t see how that impacts the democraticness of anything at all. I can pull from it, I can push to it, I can fork on it. The centralizedness of it doesn’t seem to have any impact on participation to me. It just seems to be a matter of convenience. The less places I have to look for the thing I want, the better my experience is.
- sudhirj 7y agoGit was designed to decentralise work, not power - they’re very different. Think about the author of Git himself - Linus. He didn’t write Git because he decided one day that he was tired of being the final decision maker for the Linux kernel, and that he now wanted a thousand decentralized kernels to bloom, each with their own management and maintainers and trust levels. It was designed to give everyone a way to work with full featured version control on their own machines, and set up adhoc networks of version control between any consenting parties. But that did not imply that the power structures that make up an organization would automatically be demolished. Github is the extension of Git as it was designed. Maintainers on Github follow similar organzational policies as the Linux kernel and some are even codified into Github itself. But none of this is counter to the purpose of Git or even its ethos.
- dooglius 7y ago>Git was intentionally designed to decentralise the process of software development, so that there was no single "blessed" repository I don't think this is true. It was developed by Torvalds to maintain the Linux kernel, which has always had a "blessed" repository at kernel.org.
- cyphar 7y agoYes and no. The main idea of a dvcs is that you could send patches and pull requests to other people's forks. So in principle there is technically no blessed repository, but that doesn't mean there isn't a blessed repository from a social perspective. (Also, there is more than one "blessed" Linux repo that a lot of people use. There's linux-rt, linux-stable, etc.)