Ideas about how software should behave

Cameron Simpson cs at cskk.id.au
Wed Nov 8 21:55:32 EST 2017


On 09Nov2017 05:29, Chris Angelico <rosuav at gmail.com> wrote:
>On Thu, Nov 9, 2017 at 5:18 AM, Jon Ribbens <jon+usenet at unequivocal.eu> wrote:
>> On 2017-11-08, Ben Finney <ben+python at benfinney.id.au> wrote:
>>> I also think Jon had cause to bristle somewhat at the characterisation.
>>> I don't think Jon was attacked by Steve's remark, but I do sympathise
>>> with the instinct to feel a criticism as an attack.
>>
>> Steve called me arrogant, that's an attack - never mind that he hadn't
>> the slightest justification for it. If you're going to respond again
>> that he was calling the idea arrogant, then please just stop and
>> think for a moment: an idea, in the abstract, cannot be arrogant.

I'm with Jon here.

>> Arrogance is simply not a concept that applies to ideas, it is
>> a concept that applies to people. If you call an idea arrogant
>> you are necessarily stating that the person espousing the idea is
>> guilty of arrogance - that's what the word means.
>
>If that's true, then it's not possible for software to be
>"opinionated" either, because that definitely implies something human.
[...]

That is also true (let us ignore hypothical sentient software). And I admit 
that I have myself spoken of "opinionated" software, and when I do so I'm 
usually talking about software with IMO excessive "policy" over mechanism, 
particularly software whose policy cannot be adjusted.

When I do that, the opinion/policy comes from the developer (mandated by 
management or not) and arguably I'm impugning the quality of the dev's 
decisions.

While I'd hope that a term like "opinionated" might be tolerable (though in 
some contexts, particularly with an audience of the dev's peers or colleagues, 
possibly a source of affront), I think I'm again with Jon on "arrogant": 
without a lot of context or ambiance, I think I'd take this as personal and 
somewhat attacking if it were used directed at me or my code.

I've just dug out the source posting,
Message-ID <59fbc01b$0$18593$b1db1813$d948b532 at news.astraweb.com>, and we've 
already got the word "obvious" being bandied about in a slightly heated 
exchange.  I've discovered myself that "obvious" is a remarkably subjective 
desciption.

I think Jon is arguing that an "obvious" inference is inherently "right" and 
that if the language semantics don't match that, _particularly_ in a language 
like Python where significant thought has gone into making the language read 
quite naturally to most English speakers, then such a disconnect between an 
obvious/intuitive expectation of the code's prose and the actual language 
semantics constitutes a design bug.

I think Steve was making the point that the language's semntics are what they 
are and that inferring different semantics, regardless of how obvious they 
seem, is the wrong thing to do. And then went on to characterise an inferred 
"idea of purity" as "arrogant and foolish". I think I can, myself, imagine why 
Steve thinks of the idea this way, but that will be inference on inference.  
Regardless, I think that "arrogant and foolish" crosses into incivility, to use 
Ben's term.

And that is because, as Jon remarks, "an idea, in the abstract, cannot be 
arrogant"; the terms inherently characterise the person holding the idea.

And because of that, I want to argue for avoiding terms like this. I've 
definitely sinned in this way myself in the past. In the distant past, a _lot_.

Particularly here (python-list) I try to reread my own posts for this kind of 
thing before sending (and also for my very high typo rate). We _should_ strive 
really hard to be dispassionate and civil, _particularly_ when criticising 
things: criticism is usually unpleasant to receive, regardless of how valid or 
constructive. I'm not a big believer in "egoless programming" as my ego is 
bound up in my desire for quality, but a consequence of that is that criticism 
_is_ received personally, and therefore it should be as well phrased as 
feasible.

Before signing out, let me hark to some words from the glorious film "Harvey": 
"I used to be smart. I recommend nice."

Cheers,
Cameron Simpson <cs at cskk.id.au> (formerly cs at zip.com.au)



More information about the Python-list mailing list