Lazy evaluation of expressions will cause the designer of a given piece of code lose control over the sequence their code is executed. I am having trouble understanding why this would be acceptable or even desired by a programmer.
How can this paradigm be used to build predictable software that works as intended, when we have no guarantee when and where an expression will be evaluated?