On Mon, Nov 17, 2003 at 11:47:34AM -0600, Chad Walstrom wrote: [snip] > I have a love-hate relationship with the significant whitespace.
I have a hate-hate relationship with it. I much prefer free-style syntax where the programmer is allowed to use his best judgment on how to indent the code. Of course, in less-than-ideal projects, or projects with less-then-ideal programmers, this could result in a mess, but I'm speaking of personal preference here. > I have always disliked 8 spaces per tab, because it takes up too much > screen real estate on an 80 column display. Whenever I coded in C, I > set my vi editor to interpret the tabs as 4 spaces. My mistake in using > this was displayed when I tried to print with a2ps or enscript, when > they were once again interpreted as 8 spaces. Arg! I personally insist on 8 spaces per tab, because way too many things break otherwise. > I then switched back to using only spaces for indentation, and this > seems to be a consistent approach, but because personal opinion in > coding style seems to be a right of passage amongst C coders, I could > never get anyone to agree with me. ;-) Even the venerable linux kernel > only accepts tabs, IIRC[1]. Actually, I do agree with you. I only use tabs for comments, or for overly-long lines which needs to be broken, but which does not represent syntactical nesting, eg: void some_function_with_a_very_long_name(some_data_type *a, some_other_data_type *b, ...) { ... } For syntactical nesting, I use spaces alone, even if it means I have to expend extra effort to hit the space bar. The reason I insist on this in my own coding style is because tabs mixed with spaces in a single stretch of whitespace are just Pure Evil(tm). They show up all wrong in a viewer that has a different tab size, and do not behave consistently when you are re-indenting lines (eg., if a line starts with <tab><tab><space><code>, and you insert spaces in front of it to indent it, the spaces just get "eaten" by the tab; and if you are outdenting it, the deleted tab causes it to outdent too far, but inserting more spaces doesn't compensate for it because the second tab eats the spaces). I use tabs for comments only for my own sanity's sake, since otherwise I'd have to count 40 columns every time I want to comment a line of code. > Another problem. Try cut-n-paste in X between code that uses tabs[2]. > Sometimes the tabs are not preserved. Very odd and annoying. That's because the terminal settings are b0rked. I personally delete all programs that cannot cut-n-paste without messing up tabs and spaces. Unfortunately, this happens a lot on the Winbloxe desktop at work. [snip] > So, tabs v.s. spaces isn't really a concern except when mixing the two. > If you use eight spaces for all indentation, it won't matter. If you > use some other number, it's best to use spaces exclusively. If you use > tabs exclusively, changing the appearance in your editor may simply be a > configuration option away. What will I use? I still haven't decided; > probably tabs/8 spaces. ;-p [snip] For personal pet projects, I use 2 spaces per nesting level. Some people think that's Pure Evil(tm), although I fully agree with you about wasting screen real estate in 80 columns (yes, I am one of those freaks who insist that all code must not have lines longer than 79 characters). Nevertheless, for their sake I use 4 spaces per nesting level in group projects. Also, as an off-topic note, blank lines that contain tabs or spaces are Pure Evil(tm), especially in code. One of these days I should write a sed script to eliminate all incarnations of this Pure Evil(tm) from /usr/src. T -- There are four kinds of lies: lies, damn lies, and statistics.