Hacker News new | ask | show | jobs
by dmead 749 days ago
This seems like a huge mess. Why is it so hard for R people to settle on a standard?
2 comments

There's a few reasons I can think of.

First, R definitely needs at least two, one for functional OOP (Common Lisp style) and one for class-based OOP (Java style). The latter is _much_ less important for everyday R users but as a package author it's extremely helpful for modeling certain types of resources. (Interestingly, Python also ships with two: @singledispatch and classes; and multimethod/multidispatch also exist.)

Second, because R's basic language building blocks are so flexible, it's relatively easy to build new OOP systems, resulting in more diversity.

Third, I believe it's actually been close to thirty years since S4 was introduced, which was the last functional OOP system until S7. I don't think that's a terrible track record, compared to how much variety you see in equally fundamental systems in other language communities (just off the top of my head, Python: packaging standards, environment management, data frames; JavaScript: module systems, runtimes, package managers).