Understanding Symmetry in Object-Oriented Languages
By: Liping Zhao, James O. Coplien
Symmetry is a fundamental principle of scientific inquiry. Though its role in software is less well understood than in the physical sciences, many software design constructs can be formalized as symmetries, especially in object-oriented programming and design. Motivated by the success of symmetry in other disciplines, the authors have made a conscious effort to understand the importance of symmetry in programming and design.