On Thursday, 5 September 2013 at 10:51:19 UTC, deadalnix wrote:
Stuff like data validation, or lazy initialization, anything
really data oriented usually benefit from that.
Also, the dichotomy function call/field access is really not
that clear at the end. Accessing some data may require a
function call, go through a signal handler, or involve
complicated operation by the CPU (potentially 2 round trip to
memory).
On the other hand, optimizer will remove many function calls
making them effectively field access. Even if it isn't inlined,
a simple function call could end up being faster than 2 round
trip to memory (the stack is hot).
I guess it was an answer to earlier property comment. Key concern
here is not actually speed but ease to understand the program -
it is pretty much the same deal as pure vs non-pure. Non-volatile
non-shared field access is extremely unlikely to cause any
side-effects in global program state and same is generally
expected from something that looks like plain field access.