It’s ok for symbols to have different meanings in different contexts. If someone is new to the context, they should research or ask about it. People that are familiar should provide the mutual understanding, provided they have the will and ability to educate.
Oh, I know where it came from. That’s also why we have all kinds of maths operators in the syntax of virtually any programming language. Because back when we didn’t yet know where this programming thing was going, we just threw in the conventions of maths and theoretical logic.
What I’m saying is that we have our own conventions now, i.e. objects and methods, so I think, it’s worth reconsidering whether we still want to have these old conventions that are special cases in the syntax.
For me, it’s pretty much the opposite. With the exclamation mark, I’ll see the inversion, then I’ll read the actual condition and try to make sense of it, and then I’ll remember that this thing was supposed to be inverted. Or I won’t remember, that’s unfortunately also a possibility.
Might just be what we’re used to, though. I have been working in a codebase with mostly .not() for the past year.
Alright, spicy opinion time: I think, the
!
operator is dumb.It’s yet another symbol with a meaning, which people have to learn.
And it’s easy to overlook, especially in languages with parentheses in their if-conditions:
if (!list.isEmpty()) { ... }
I think that just a
.not()
method on Booleans is cooler:if (list.isEmpty().not()) { ... }
You can do this in Rust, which is where I have that idea from: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=dedb71bd84243c78ee0afad0f30b80c3
Mathematics themselves are essentially tons of symbols that people have to learn, tbf.
I personally never had any trouble looking at the negation operator, and find the
.not()
postfix cumbersome.To be fair, mathematics also uses single-character variable names
LaughsCries in engineeringactually names his variables “x, y, z, etc etc” when coding
It’s ok for symbols to have different meanings in different contexts. If someone is new to the context, they should research or ask about it. People that are familiar should provide the mutual understanding, provided they have the will and ability to educate.
The ol’ postfix ‘not’. Wayne’s World is a thing of the past! … NOT
No way dude!
We use ! because keyboards no longer have buttons for ¬, which is the other logical not.
Oh, I know where it came from. That’s also why we have all kinds of maths operators in the syntax of virtually any programming language. Because back when we didn’t yet know where this programming thing was going, we just threw in the conventions of maths and theoretical logic.
What I’m saying is that we have our own conventions now, i.e. objects and methods, so I think, it’s worth reconsidering whether we still want to have these old conventions that are special cases in the syntax.
I dislike the .not() method a bit because it inverts the meaning of the previous code snippet you’ve read.
if (list.isEmpty()...
“Ah, so if the list is empty…”
if (list.isEmpty().not())
“Goddammit”
For me, it’s pretty much the opposite. With the exclamation mark, I’ll see the inversion, then I’ll read the actual condition and try to make sense of it, and then I’ll remember that this thing was supposed to be inverted. Or I won’t remember, that’s unfortunately also a possibility.
Might just be what we’re used to, though. I have been working in a codebase with mostly
.not()
for the past year.Kotlin has not, and, and or utility functions as well