- Except for cro-magnon freaks we all have text editors that can easily edit text that's wider than 80 columns.
- Forced line breaks to meet width requirements don't make code more readable. Forced line breaks often reduce readability.
- 80 column hard limits should be dropped from modern coding standards
- For block non-code text the width used should be a comfortable reading width. Really long lines of text are hard to read.
- Consideration of maximum acceptable line length should ignore any leading whitespace. The intelligibility, or lack thereof, of a line of code is not strongly tied to the total line length but to the number of non-whitespace characters in the line.
- The readability of a line of code is probably related to the density of the syntax. Lines using only simple syntax or syntax that can be easily decomposed can be longer and remain readable.
While I agree that formatting some code - particularly methods with long and descriptive names - to 80 columns can decrease readability, there are a few aspects you have neglected to mention which argue in favor of a reduced column limit.
For one, if code is kept to approximately 80 columns it becomes very easy to work with two files side-by-side in the same editor (text or GUI), increasing the effective information density of the single display. Attempting this with higher column limits will generally result in a high degree of horizontal scrolling in order to follow the program flow whereas keeping to the 80 column limit allows this with little to no scrolling on most modern displays.
Another aspect is what happens when you transfer your code to a medium without the ability to scroll/nowrap, such as on paper. Keeping code to the limit keeps print layout sane. While this is much more rare event than editing code, staying within smaller limits satisfies both applications.
I also tend to be pragmatic about the application of the rule. I try to format my code to 80 columns except when doing so results in absurd levels of visual brokenness. Usually when this becomes a problem the code simply needs to be broken up into higher resolution chunks, resulting in better code. The remaining (rare) cases I just allow to exceed the limit.
Posted by Mojapo on March 13, 2008 at 05:15 PM PDT #