Notes to self

Not gold alone brought us hither

Oct 11, 2015

Tab width

After reading the following from the kernel.org coding styleguide, it is easy to see why not to write code with tabs converted to spaces, and why not to set tab width to anything less than eight.

Tabs are 8 characters, and thus indentations are also 8 characters. There are heretic movements that try to make indentations 4 (or even 2!) characters deep, and that is akin to trying to define the value of PI to be 3.

Rationale: The whole idea behind indentation is to clearly define where a block of control starts and ends. Especially when you’ve been looking at your screen for 20 straight hours, you’ll find it a lot easier to see how the indentation works if you have large indentations.

Now, some people will claim that having 8-character indentations makes the code move too far to the right, and makes it hard to read on a 80-character terminal screen. The answer to that is that if you need more than 3 levels of indentation, you’re screwed anyway, and should fix your program.

In short, 8-char indents make things easier to read, and have the added benefit of warning you when you’re nesting your functions too deep. Heed that warning.

Also, using tabs instead of spaces allows the reader to personalize visual depth of indentation, while spaces lock you into what the author chose. Hence, prefer tabs over spaces in your coding standards – and even if you don’t – never mix the two!