From Let Over Lambda by Doug Hoyte:
Style is necessary only when understanding is missing. A corollary to this is that sometimes the only way to effectively use something you don’t understand is to copy styles observed elsewhere.
I liked those lines when I first read them. But as I thought about them more, they started to sound sophomoric.
In context, Hoyte is arguing that one should not avoid advanced programming techniques just because they are not in common use. Also, I believe he has in mind a single programmer working in isolation. Hoyte’s statement is easier to accept within those boundaries than when applied more generally, but even in context there is room to disagree.
Novices may not realize that a style is a style. They may confuse what they find necessary with what is necessary.
But style can be the mark of experts as well as novices. Novices may follow a convention because they know no alternative. Experts may be aware of alternatives and deliberately choose the limitations of the same convention.Experts may see the wisdom in convention, or may see convention as a small price to pay out of consideration for other people.
It’s not saying much to say style is only necessary “when understanding is missing.” Understanding is nearly always missing to some extent on any large project. We hardly ever understand what we’re doing so thoroughly that we can completely disregard style.