Effect, intent and semantics.

Jan 10, 2017 17:16

Twitter showed me this tweet because a friend liked it:

Programmers refusing to reconsider their words in light of effect over intent is funny when you think about how that would go over with code

I think that snark is wrong, but wrong in an interesting way which reveals something true and important. And I think it's going to take more than 140 characters to explain.

Firstly, effect and intent are not the only two considerations. Another is meaning.

Individuals have attitudes to language somewhere on the prescriptive-descriptive spectrum. Prescriptivists feel that language has a well-defined, well codified meaning, that a use can be correct or incorrect, that a phrase has a specific meaning. Descriptivists feel that language is fluid, an expressive meeting of minds between the originator and the recipient, meaning whatever they mutually understand it to mean.

I may be generalising a little, but it seems to me that focusing on effect over intent correlates with descriptivism: what the thing Kim says to Chris means to Chris is at least as important as what Kim intended by it. If a prescriptivist hears of such a misunderstanding between people, their first instinct will be to ask: what did it actually mean? They lean towards the view that either Kim mis-spoke or Chris misunderstood, and it's possible to determine objectively who made the mistake.

And here's the thing: most programming languages are defined with such obsessive precision the result looks anally retentive to an outsider. A Fowlerite seems vague and muddle-headed by comparison.

So a software engineer writes code, they run it, and it doesn't have the intended effect. Nine times out of ten, that's because they made a mistake. But it's an objective mistake: there's a standard which ascribes a precise meaning to what they wrote, and if that wasn't what they intended, it's clearly their fault. However, sometimes the implementation of their language or a library of code they rely on is wrong.

At that point, software engineers get really intense. They assumed they'd gone wrong, but actually what they wrote was correct and meant what they intended; the compiler writer made a mistake. Often, by that point they've spent a couple of days beating their head against a brick wall. Worse, they now basically have to lie to get what they want: write something knowing it means other than what they intend, in order to get the desired effect.

So, going back to the original tweet, I don't think those software engineers are necessarily being hypocritical or inconsistent if they refuse to reconsider their words in light of effect over intent. It's just that they're prescriptive about language. If called out about something they said, they'll make a sincere and open-minded check that they believe what they said had the intended meaning. But then they'll blame the listener if they feel they were misconstrued.

It's possible to argue they're wrong about the meaning of something. It's possible to argue for descriptivism rather than prescriptivism. But often it's a mistake to assume the software engineer is a bad person, or holds unacceptable views on the topic at hand, simply because they're unwilling to make a linguistic accommodation they're uncomfortable with.

Cross-posted from this Dreamwidth original. If you can, please comment there instead.

DW Comments: Read
or Add Your Own.
Previous post Next post
Up