English

On the Proxy Identity Crisis

Programming Languages 2013-12-20 v1

Abstract

A proxy, in general, is an object mediating access to an arbitrary target object. The proxy is then intended to be used in place of the target object. Ideally, a proxy is not distinguishable from other objects. Running a program with a proxy leads to the same outcome as running the program with the target object. Even though the approach provides a lot of power to the user, proxies come with a limitation. Because a proxy, wrapping a target object, is a new object and different from its target, the interposition changes the behaviour of some core components. For distinct proxies the double == and triple === equal operator returns false, even if the target object is the same. More precisely, the expected result depends on use case. To overcome this limitation we will discuss alternatives.

Cite

@article{arxiv.1312.5429,
  title  = {On the Proxy Identity Crisis},
  author = {Matthias Keil and Peter Thiemann},
  journal= {arXiv preprint arXiv:1312.5429},
  year   = {2013}
}

Comments

Position Paper

R2 v1 2026-06-22T02:31:15.671Z