Part of the motivation for the reference classes was to bring a general OOP
view to R. ?One can start from some essential concepts of objects and their
properties, inheritance and class definition, as have evolved over a very
long time.
Next, there is a fundamental choice of paradigm between "encapsulated" OOP
as the rest of the world knows it, and "functional" OOP as practiced by S
and R, and a few other languages. ?While the two paradigms are quite
different, there is no need to view them as opposed. ?They provide different
advantages and tend to suit different goals--very roughly, functional object
creation and reproducible results versus persistent objects whose properties
one would like to have evolve over time using their encapsulated methods.