The two main OOP systems in R, S3 and S4, both have their advantages and their limitations. For example, in S3 there’s no systematic object validation to make sure an object’s class is correct. In S4, the syntax for defining classes is rather unusual and relies on side effects. Issues such as these mean that, unlike other programming languages, there isn’t a dominant approach to OOP in R.
Now imagine you could take the best bits of S3 and the best bits of S4. That’s where R7 comes in.
Read on to learn more about how R7 compares to other object-oriented paradigms in R, such as S3, S4, and R6.