Confronted with the task of extending Eiffel to support
distribution, [Meyer93] correctly notices that the semantics of the
execution of local and remote operations are different, but concludes
that this cannot be "[hidden] to the reader of the software text".
This view is shared by many languages and systems (noticeably Ada
[Ada95]).
As noted by [Vinoski93], it has the painful effect of breaking the
seamlessness of representation within an object system, creating areas
of locality, remote to each other. The early architectural decisions
become critical: they are hardly reversible.