I agree, complexity bad. So why do you like Git? :-)
Git is _incredibly_ complex to understand, as proven for almost 20 years by the vast majority of people who have been forced to use it. And by quite a bit of academic and industry research, for instance, [1].
I can teach you Grace in about 15 minutes. How many days and weeks does it take most devs to start to understand Git? And even when they do, for most, it's only the basics, and please don't let anything go wrong. I mean, there were people for over a decade who made their living running week-long workshops on learning Git. I don't see how you could run a half-day-long workshop teaching Grace, unless you go really slowly.
If you're one of the probably 20% or so who really feels like they understand Git and are in control of it, that's awesome. But you're projecting your experience more widely if you think that's the norm. It's not.
As for local, well, if you're working with a team on GitHub or GitLab or Azure DevOps or some other hoster, you're already doing centralized VCS, you're just using a decentralized VCS to do it. Most shops don't let you push to production from your dev box, right?
> How many days and weeks does it take most devs to start to understand Git?
A few weeks to understand a technology you’re gonna be working with for years to come is nothing.
> And by quite a bit of academic and industry research, for instance, [1].
Isn’t that a positive aspect? It’s well studied and there are wealths of info about it for just about anything you need to do.
I see Grace less as a git replacement and more as its own niche. I certainly see the benefits of easier onboarding and centralization for companies and education but those who grew up with git will likely keep using it
> I agree, complexity bad. So why do you like Git? :-)
I think you're trying to fabricate problems where there are none.
Git's UX problem lies in the way it's CLI is not intuitive for those unfamiliar with it, but a) using GUI frontends like SourceTree allows newbies to eliminate that issue, b) with time you onboard to the CLI and everything just works.
At best, your suggestion to use another user interface is equivalent to suggesting Git users to adopt a new GUI frontend that's polished in a different way.
> Git is _incredibly_ complex to understand,
I don't know what you can possibly mean by "incredibly complex".
For end users, your mental model can be limited to a) you clone a repository, b) you commit and your changes, c) you push your changes to make them available to everyone, d) you pull everyone's changes to have access to them.
This is hardly rocket science. I mean, why do you think Git managed to become the world's de facto standard VCS and sets the gold standard for VCSs?
> I think you're trying to fabricate problems where there are none.
No, I'm not. The problems with Git's UX are well-documented, and have spawned many projects over the last 10+ years trying to deliver "Git, but easier" or "Git, but better", so it's not just me who sees this.
I'm happy for you that you're comfortable with Git, or so indoctrinated to the workarounds required to use Git well that you're used to them. I believe it's time for something very different, and much easier to understand.
> why do you think Git managed to become the world's de facto standard VCS
I think it was because Git has lightweight branches, and an ephemeral working directory, both of which made it nicer to use than the older, slower, centralized VCS's. I've kept both of those features in Grace.
I also think it was because of GitHub wrapping a lightweight social network around Git and popularizing it, at the same moment that shared open-source dev really started to catch on as an idea. Without GitHub, Git wouldn't have won.
I do not think it was because Git is easy to use, overall. Again, maybe 20% of devs really get it, and the rest don't and just hope nothing bad happens. It was better in some important axes, and we've all paid the bad-UX tax to get those better parts, but 2005 was a long time ago, with a very different set of network and hardware conditions, and we can do better.
> I believe it's time for something very different, and much easier to understand.
I'd like to reiterate my request for clarification of the concepts behind Grace. If it's as easy to understand as blobs, trees, commits, and refs, I'm sold!
> Without GitHub, Git wouldn't have won.
True, but git is good not because of GitHub, git is good because it's so simple.
I'm scared you will replace git with something easier but a lot more complex. I don't want easy, I want simple.
No it isn't. Git is just blobs, trees, commits, and refs. Git isn't easy but it's conceptually simple. I'll take simple over easy anytime.
If you could explain the concepts Grace is built on, that'd be great!
> If you're one of the probably 20% or so who really feels like they understand Git
Again, blobs, trees, commits, and refs. I don't know all of git's crazy commands, but they can be explained in terms of these four simple concepts.
> As for local, well, if you're working with a team on GitHub or GitLab or Azure DevOps or some other hoster, you're already doing centralized VCS, you're just using a decentralized VCS to do it.
No, that is still fully decentralized. Each team member has a full copy of the repository, which, if GitHub or GitLab or Azure DevOps or whatever suddenly disappeared could be promoted to be the new shared source of truth.
At my $job-2 we were using GitLab but it often went down. I just set up a git repository on one of my servers and authorized everyone's ssh keys: it took me ten minutes and we had a way to collaborate even with GitLab down. Yes there weren't pull requests or anything, it was just a dumb repo used over ssh. But that was the whole point!
That may be, but the state of your repo, expressed as a combination of the 4 things listed after doing an arcane and globally unique sequence of git commands, is in no way conceptually simple. If it was, the implicit lurking horror that every programmer knows lies inside git would not be a shared traumatic developer coming of age story. You are the exception here.
> No, that is still fully decentralized.
The word decentralized does not really apply here. Is Figma decentralized? Do you ever do peer-to-peer git? Do you really? Or do you kind of just have a single source of truth with a lot of local copies, that allow offline-first workflows that you rarely need.
> if GitHub or GitLab or Azure DevOps or whatever suddenly disappeared could be promoted to be the new shared source of truth.
This is not a selling point you think will be taken seriously, right?
> Do you ever do peer-to-peer git? Do you really? Or do you kind of just have a single source of truth with a lot of local copies, that allow offline-first workflows that you rarely need.
Have you read my comment? Yes I did. I use GitHub to sync my git things, but if it were to disappear I could easily start using something else. Sometimes I push between other remotes too. Each of the repos is self-contained and whole by itself.
> > if GitHub or GitLab or Azure DevOps or whatever suddenly disappeared could be promoted to be the new shared source of truth.
> This is not a selling point you think will be taken seriously, right?
Again, have you even read my comment? This is not a theoretical scenario, it's a thing that happened to me in the past. Thanks to git's distributed nature it was very easy to work around.
No. Vast majority of software does not consist of four simple and easy to grok concepts.
Vast majority of software consists of badly designed abstractions full of various hacked on workarounds for exceptional cases. Such as Subversion, what a horror that was!
Git is _incredibly_ complex to understand, as proven for almost 20 years by the vast majority of people who have been forced to use it. And by quite a bit of academic and industry research, for instance, [1].
I can teach you Grace in about 15 minutes. How many days and weeks does it take most devs to start to understand Git? And even when they do, for most, it's only the basics, and please don't let anything go wrong. I mean, there were people for over a decade who made their living running week-long workshops on learning Git. I don't see how you could run a half-day-long workshop teaching Grace, unless you go really slowly.
If you're one of the probably 20% or so who really feels like they understand Git and are in control of it, that's awesome. But you're projecting your experience more widely if you think that's the norm. It's not.
As for local, well, if you're working with a team on GitHub or GitLab or Azure DevOps or some other hoster, you're already doing centralized VCS, you're just using a decentralized VCS to do it. Most shops don't let you push to production from your dev box, right?
[1]: https://static.googleusercontent.com/media/research.google.c...