note eyepopslikeamosquito <P> You are using the term "readable
code" without clearly defining it. I think "maintainable code"
is far more important. Some of the things that help make code
"maintainable" are: <ul> <li> Sound domain abstractions. <li>
Wise program decomposition. <li> Highly cohesive, loosely
coupled modules. <li> Descriptive, explanatory, consistent and
regular names. <li> Minimizing the exposure of implementation
details. Minimizing the use of global data. <li> Minimizing the
scope of variables, pragmas, etc. Avoiding action at a distance.
<li> Avoiding duplication (<a
href="'t_repeat_yourself">DRY</a>). <li> Encapsulation. <li>
Interfaces that are: consistent; easy to use correctly; hard to
use incorrectly; easy to read, maintain and extend; clearly
documented; appropriate to your audience. <li> Useful commenting
and documentation. <li> Components that are testable in
isolation. Comprehensive test suites. <li> Avoiding unnecessary
cleverness (encapsulating and commenting it when cleverness is