### Question 17.10

Some people say that `goto`'s are evil and that I should never use them. Isn't that a bit extreme?

Programming style, like writing style, is somewhat of an art and cannot be codified by inflexible rules, although discussions about style often seem to center exclusively around such rules.

In the case of the `goto` statement, it has long been observed that unfettered use of `goto`'s quickly leads to unmaintainable spaghetti code. However, a simple, unthinking ban on the `goto` statement does not necessarily lead immediately to beautiful programming: an unstructured programmer is just as capable of constructing a Byzantine tangle without using any `goto`'s (perhaps substituting oddly-nested loops and Boolean control variables, instead).

Most observations or ``rules'' about programming style usually work better as guidelines than rules, and work much better if programmers understand what the guidelines are trying to accomplish. Blindly avoiding certain constructs or following rules without understanding them can lead to just as many problems as the rules were supposed to avert.

Furthermore, many opinions on programming style are just that: opinions. It's usually futile to get dragged into ``style wars,'' because on certain issues (such as those referred to in questions 9.2, 5.3, 5.9, and 10.7), opponents can never seem to agree, or agree to disagree, or stop arguing.

Read sequentially: prev next up top

This page by Steve Summit // Copyright 1995 // mail feedback