This is one of the things that I hate most when I see it in someone else's code. I know what it means and why some people do it this way ("what if I accidentally put '=' instead?"). For me it's very much like when a child goes down the stairs counting the steps out loud.

Anyway, here are my arguments against it:


It disrupts the natural flow of reading the program code. We, humans, say "if value is zero" and not "if zero is value".
Modern compilers warn you when you have an assignment in your condition, or actually if your condition consists of just that assignment, which, yes, looks suspicious anyway
You shouldn't forget to put double '=' when you are comparing values if you are a programmer. You may as well forget to put "!" when testing non-equality.


Ah, yes, "Yoda conditionals"  ("If zero the value is, execute this code you must!").  I always point anyone who claims they're "better" at tools like lint(1).  This particular problem has been solved since the late 70s.  Most modern languages won't even compile an expression like if(x = 10), as they refuse to coerce the result of the assignment to a boolean.

As others have said, it certainly isn't a problem, but it does provoke a bit of cognitive dissonance.
