I was struck by one sentence in the git-svn course. It’s about the way a computer program displays its output. It’s about colors. Some people like to see code annotated with color, like this:
You can see, that keywords from the programming language are highlighted. Colors are a new channel of information transfer, highlighting code syntax allows us to use our natural ability of color recognition, to work with the code more efficiently.
Without colors, this code looks like this:
Sure, you can still read the code. But… is the word “class” is spelled correctly? Are all the quotes balanced? You don’t know, unless you examine it quite carefully. With syntax highlighting, you can determine that by looking: is it yellow or not?
some people hate colors way more than the rest likes them
…and that’s the reason why color highlighting is turned off in git by default. I once heard a convincing argument against colors: that command “ls” with option “–color” calls function stat() on every file it lists, which under certain circumstances is a highly undesired thing; but this argument was then followed by “real UNIX doesn’t have colors” (is it a form of a “real programmer” thing?), which destroyed the whole impression. Yes, sometimes you might want to turn colors off…
But why turn the option off by default for the whole project? The majority has to give in because of loud minority?
In a democratic system, and I believe Free Software movement is about democracy, software should be optimized for the largest benefit of the whole, or at least the majority.
If I find myself among the minority and I can’t get the majority willfully convinced to my option (without hate speeches), I’m going to give in. And I expect the same from others.