Hacker News new | ask | show | jobs
by ap22213 3463 days ago
DVCS is fundamentally a simple concept. And, every use case should be possible with a series of elemental operations. Any 'advanced' use cases can and should just be 'macros'.
3 comments

> DVCS is fundamentally a simple concept

It is, if you're going to simplify it so far as to avoid the problemspace by nomenclature. It's just transforming nonlinear events into a linear sequence! I guess multithreading is also a fundamentally simple concept, in that vein.

I don't mean to minimize the effort that went into Git. But, have you ever looked at the source code? It's like someone dropped the kitchen sink into the global namespace. The whole code base is full of premature optimizations. And, there's a lot of low-level infrastructure code coupled in with the core logic.

I know abstraction is out of fashion these days, but it may have helped a little in organizing things. Abstraction, when used properly, can almost always make complicated things more simple.

Basically, if a regular person had created Git, and not a demigod, would it even have become what it is?

we would have hg.

as a user, I'll take premature optimizations over slow as balls any day.

The problem with premature optimization is that most of it has little effect on overall performance. Software performance almost always follows a Pareto distribution.

But, wtf do I know, I'm just some regular person.

It's hard to tell - did the premature optimizations allow Git to extend way beyond the initial release with little worries of performance? It's not something that's easily quantifiable.
Not sure why you are being down-voted. What you describe is the philosophy of e.g. monotone, which works quite well.
simple systems can appear complexed because there are many buttons. You often only have to use just a few buttons, where the rest are for special ocations.