On 04/12/2011 05:19 AM, Jonathan M Davis wrote:
Using only spaces and no tabs avoids the entire issue

spaces <--> tabs works as fine

Why are programmers so blindly unfair when discussing this point?

and is one of the major reasons (if not _the_ major reason) why it is 
incredibly common for coding
standards to require spaces and prohibit tabs. Obviously, you _can_ use tabs if you're careful - especially if you're the only programmer involved - but it's just simpler to disallow tabs when you're dealing with a group of developers.

I guess the true reason why spaces are required in guidelines is a mix of conformism and "virality". At one point in time, people started to face the issue, thay had to make a choice for coding standard in language libs, corporation code, school/university works, etc. They chose spaces because, at that time, most people used spaces and did not want to change. Then, even more programmers get used to use spaces and don't want to change, so that new coding standards are forced to enforce spaces, and so on... There is no, and there has never been any, logical reason for this choice. There cannot be, in fact:

1. Tabs properly separate code content from view,
2. and respect each reader's preference.

In addition to those main reasons, they have a few nice side-effects:

* No indent width issue (!),
* 1 tab <--> 1 indent level conceptually,
* deletion is 1 key press, even with stupid editors.

A drawback is one cannot directly have different indent levels, for instance to indent collection contents more, or less, than blocks of code. This can also be considered an advantage; and is simply solved by using... spaces ;-)

void f () {
 -> while (true) {
 ->  -> table = [
 ->  -> .."aaa" : 1,
 ->  -> .."bbb" : 2,
 ->  -> .."ccc" : 3,
 ->  -> ];
 ->  -> auto a = this(table);
 ->  -> if (! a) break;
 -> }
}

(yes, the example is stupid)

Denis
--
_________________
vita es estrany
spir.wikidot.com

Reply via email to