OK, this is a crazy idea and I realize that this is not going to be implemented any time soon. I just want you thoughts about it ;)
In Kotlin M12, isNotEmpty has been deprecated in favour of isEmpty().not(). Broadly all methods named isNotSomething have been deprecated in favour of isSomething.not().
I totally get it : maintaining those functions whould force maintainers to maintain a duplicate of each function that returns a boolean, adds boilerplate code and a lot of Java libraries that we use everyday are not using this convention so the new way is compatible with any method that returns a boolean.
It’s a total win, except that I liked and used the method isNotEmpty() a lot.
And, maybe it’s just be, but I find :
if (list.isNotEmpty()) {}To be a lot more readable than :
if (list.isEmpty().not()) {}
Just semantically, when you read it, the first is a state (not empty) while the other is a state that is then inverted (empty, not) and when I read it, I mentally needs more… neurons ?
So how about something like :
if (list.not:isEmpty()) {}
(Please remember that this proposal is a thought experiment, don’t go red yet :p)
This syntax would allow to call no-argument extension functions.
I’d limit this to extension functions to prevent abuses like
let name = db.getFirstName:getUser(“salomon”)Which would be horrifying
Once again I realize that Kotlin is closed to release and that it will certainly NOT be implemented, I’d just wanted to… share my frustration with this new .not() syntax ![]()
So, what do you think ?