>> Exchanging a single word for another may totally alter the effect of a passage
> I think that describes code perfectly.
I wasn't very clear here: what I meant was that exchanging a single word even for its closest synonym will always change the effect of a passage to some degree, because the intrinsic aesthetic qualities of the word inevitably alter the effect of the word.
This isn't true for code, where refactoring a line of code might change how readable that line is, while conceivably having an identical effect when the line is interpreted, compiled or executed.
That the computer cannot receive joy from code does not mean that I can't; That the computer doesn't experience joy from Macbeth doesn't mean that I don't.
Reading joyful code is a treat. I pity who has not read some code that has brought them joy. And yet, what brings me joy[1], [2] is what the peanut gallery may call unreadable. What then?
[1]: www.nsl.com/papers/origins.htm
[2]: cr.yp.to/qmail.html
Surely something else must be going on.
Kernighan and Plauger, while otherwise dated, has one of the best rules for programmers:
Say what you mean, simply and directly.
Assume the best of the writer of the code you are reading; assume this was them saying what they meant, as simply and directly as they could.
Was it clear in their mind?
Or does it feel like they were muddling through the problem?
If as I am decoding this foreign thing of other people's code, I find my mind repeatedly would put it simpler, cleaner, and clearer, I can complain about the tedium, and mindless repetition in the code, but I'm still not complaining about it's readability.
> I think that describes code perfectly.
I wasn't very clear here: what I meant was that exchanging a single word even for its closest synonym will always change the effect of a passage to some degree, because the intrinsic aesthetic qualities of the word inevitably alter the effect of the word.
This isn't true for code, where refactoring a line of code might change how readable that line is, while conceivably having an identical effect when the line is interpreted, compiled or executed.