In a condition statement (IF) everyone uses (position < size), but why?
Only convention or there is a good reason for that?

Found in the wild:



if (pos < array.length) {
   // do some with array[pos];
}


Rarely found:

if (array.length > pos) {
   // do some with array[pos];
}


The deeper pattern is that we naturally use "[thing that varies] [comparison] [thing that does not vary]" as the standard order.  This principle holds true for your example because position may vary, while size will not.

The only common exception is when testing for equality some programmers train themselves to use the opposite order (known as Yoda conditions) in order to avoid the common variable = constant rather than variable == constant bug -- I don't hold with this idea because I find the natural ordering described above much more readable, primarily because it's the way we express the idea in English, and because most modern compilers will detect this and issue a warning.
