The Left Hand of Equals

Abstract

When is one object equal to another object? While object identity is fundamental to object-oriented systems, object equality, although tightly intertwined with identity, is harder to pin down. The distinction between identity and equality is reflected in object-oriented languages, almost all of which provide two variants of “equality”, while some provide many more. Programmers can usually override at least one of these forms of equality, and can always define their own methods to distinguish their own objects.

This essay takes a reflexive journey through fifty years of identity and equality in object-oriented languages, and ends somewhere we did not expect: a “left-handed” equality relying on trust and grace.

Authors

James Noble, Andrew P. Black, Kim B. Bruce, Michael Homer, Mark S Miller

Published in

ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!), 2016

The final copy of this publication is available from the publisher.

Resources

PDF
mwh.nz/pdf/onward2016
this page
mwh.nz/pubs/onward2016
Michael Homer — 2024 e6b1d5c8