Sujet : Re: “Booleans Considered Harmful”
De : julio (at) *nospam* diegidio.name (Julio Di Egidio)
Groupes : comp.programmingDate : 22. May 2025, 13:57:33
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <100n6vt$32ghp$3@dont-email.me>
References : 1 2 3
User-Agent : Mozilla Thunderbird
On 22/05/2025 14:43, Julio Di Egidio wrote:
On 22/05/2025 13:51, David Brown wrote:
On 22/05/2025 08:51, Lawrence D'Oliveiro wrote:
I think most of this article is a load of nonsense, myself.
>
<https://www.infoworld.com/article/3990923/booleans-considered-harmful.html>
>
Thoughts?
>
He makes some relevant points about clarity of code,
He makes no relevant points: the whole thing is rather misguided.
<snip>
So in general, I'd prefer positive names to negative ones - "UserIsAuthorised" rather than "UserIsNotAuthorised". And I would not "hide" a "not" in the middle of a variable name as his example does. But sometimes a negative name makes more sense - "UserBanned" might be perfectly reasonable.
>
All things being equal, I'd usually choose "put positive first". But again, that's more a bias than a rule. In particular, it might often be best with an "early exit" coming first regardless of whether it is the positive condition or the negative condition.
I could give tons of *sensible* examples where you'd have to say
"sure, maybe, in that case". Rather, some properties and conditions
are *most naturally* expressed negatively. Keep also in mind that
readability is way more about uniformity than the specifics, hence
some of those are/were indeed common conventions then patterns. --
More on that line in my initial post.
That said, "think positive", as the "think negative" of some of
your counter-examples, is only *dumb and dumbing*: perfectly in
line with the abolishment of negation and the dumbing down of
humanity, as negation is the fundamental logical connective...
Not that I expect *you* and the resident gang to acknowledge
any of that, of course: you cannot even engage properly.
Advanced exercise: do you think these are equivalent?
"I do not expect you to acknowledge any of that."
"I expect you to not acknowledge any of that."
Anyway, HTH.
-Julio