Hacker News new | past | comments | ask | show | jobs | submit login

> I formerly thought, "why would anyone want to use a GUI for Git? It's just a crutch so you don't have to use the CLI."

Honestly, I can't stand Git on the command line and always interact with it through a GUI. I feel like source control in general is unnecessarily complicated, but Git even more so.




Agreed. I've often made a point among colleagues that source control, because it's built by programmers for use nearly exclusively by programmers, has enjoyed very little user interface attention through its lifespan. Unlike other applications that have experimented and evolved their user interface relatively rapidly, source control like build tools, is an area where there is little demand for UI improvement (and hence, little value in doing so). Putting aside proprietary and very expensive source control systems, the open source options seem to align to the way we used computers generally in the following decades.

1970s: CVS

1980s: Subversion

1990s: Git (shifting Git to the 1990s even aligns it with the batch of distributed OS research from that era).

This is especially reductive and somewhat mean-spirited, but my point is that using Git gives me the feeling of using other types of applications from the 1990s. Source control remains stuck in an era where computer programs appeared to be designed in part to appeal to the curiosity of developers who take pride in mastering complex systems, not for being eminently usable.

When I say Git "feels 1990s" a retort is that I am a Git hater and should just use Perforce or some other crummy commercial product. That misses the point. It just feels like a tool from the 1990s, which to be clear, feels a heck of a lot better than a tool from the 1980s. But I live in the 2010s. I want a source control system that does its job and gets out of my way. Again, to be reductive and mean, just like build tools, source control systems are a time-sink that captivate the attention of people who enjoy fussing with tools. It's not that I don't like Git versus its real-world contemporaries, but I want Git + 20 years.


Before git (and DVCS in general) every company had a source control manager. You could get a degree (and presumably still can) in revision control theory. This was necessary then because a developer couldn't completely grock it and get real development done at the same time. Today I don't know if any git shops that have a full-time source control manager.

So, if the worst thing about this generation of source control systems is an unflattering UI... I think we have awhile until the next generation takes over.


The UI is an important problem, but also the needless complexity and leaky abstractions. This isn't limited to version control either, but is pervasive in all programming tools (IDEs/editors, build systems, programming languages, platforms, etc.)

This is caused by extreme conservatism and dogma.

"GUIs are for noobs, CLI is better"

"Everything should be text like the Unix gods intended" (code in particular)

"Keyboard is faster than mouse"

"Autocomplete? That just causes you not to learn anything"

"Who needs semantic code navigation when you have grep?"

"WYSIWYG? Use markdown or latex."

"What's wrong with the web? This canvas API is so cool."

etc.


Wait.. we have a senior source control manager and we are using TFS. Sometimes clicking through the gui based wizards to merge two branches is to difficult for C# devs these days. His expertise in right clicking is truly remarkable. I fear for the day we move to distributed source control.


> But I live in the 2010s. I want a source control system that does its job and gets out of my way.

Darcs was fun, although the exponential conflict issue was a bitch (and still not resolved as far as I know)


I recognize that Git is complicated, but what part of the complexity is unnecessary? It seems to me that Git is complicated because version control is inherently complex.


The thing to remember about git is that it's a system for making a source control system, not a system itself.

No one uses ALL of git, but everyone needs a different subset of the creature.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: