Object oriented programming in one way or another is very much possible in R. However, unlike for example Python, there are many ways to achieve object orientation:
- The R.oo package
- S3 and S4 classes
- Reference classes
- the proto package
My question is:
What major differences distinguish these ways of OO programming in R?
Ideally the answers here will serve as a reference for R programmers trying to decide which OO programming methods best suits their needs.
As such, I am asking for detail, presented in an objective manner, based on experience, and backed with facts and reference. Bonus points for clarifying how these methods map to standard OO practices.
See Question&Answers more detail:os