Eric Sink says that Git is the C of version control tools in the sense that it “is fast, hard-to-learn and it allows the developer to do things that are probably a bad idea.” Simply put, it is not a tool you should give to an idiot.
That doesn’t mean that you shouldn’t use it, it just means that you must be aware of the danger. Chainsaws are dangerous too, but there are times you do need one. You don’t handle it without the proper security measures. You may not even want to consider getting near a chainsaw, but instead resort to calling a professional when you need one.
But when it comes to version control tools we programmers are the professionals. There is no one else to call.
We shouldn’t be afraid to use the right tools for the job. This is analogous to the fear that people feel about dynamic languages. People think they are just too powerful and can be dangerous in the wrong hands. But it turns out that this isn’t really a valid point: almost anything can be dangerous in the wrong hands. The point is that you shouldn’t have idiots working with you. If you don’t trust your team to use a powerful tool because it would be too dangerous for them, you shouldn’t design a safer, more limited tool. You should get rid of the team itself. If your team is already able to shoot themselves in the foot with a handgun, you shouldn’t buy them a shotgun. You should find yourself another team.
Idiots always find a way to be idiots, even if you design all the safeguards that you can think of into their tools. This is just what they are. Our tools should be designed to make the awesomeness of awesome developers shine, not to hide the suckyness of the mediocre ones.
Agreed, but IMO we still have to realize that people make mistakes.
It doesnt matter how professional and competent you are, there is always room to be wrong some times.
That’s kind my view about git. It is really good and I will still use it, but it allows you to do wrong things really easily, what could sometimes be a bad idea.
Cheers,
Francisco
It all depends on how available you want to make your tool. The more specialization your tool requires of its users, the fewer users your tool will be capable of having. For example, MediaWiki’s version control is idiot proof, allowing the world’s idiots to create Wikipedia. In this case there is no doing away with them: there are not enough non-idiots in the world (i.e., people who will ever learn git) to write something as big as Wikipedia.
My point is only that excluding “idiots” (non-specialists) is not always desirable or even possible.