From ezr@ @end|ng |rom |@ndtucker@com  Mon Mar 13 16:53:56 2023
From: ezr@ @end|ng |rom |@ndtucker@com (Ezra Tucker)
Date: Mon, 13 Mar 2023 11:53:56 -0400
Subject: [Rd] Adding support for S7 to base R
In-Reply-To: <9fea1857-e3fe-e0c4-5d31-702c482f320c@gmail.com>
References: <CALWM=9b2izXXmLOQQOf4Ssg+11E5fdy5DfM4P2NqCPeBpLGSwg@mail.gmail.com>
 <9d257ea4-d757-f88e-e9d0-383f8cc8b45b@gmail.com>
 <9fea1857-e3fe-e0c4-5d31-702c482f320c@gmail.com>
Message-ID: <CAEToJBHfJ2VqdQUk7UgQ8zoCY-nCGrTT6S-GbkyvNcQhkwOD0Q@mail.gmail.com>

I don't know if this is the right forum, but I'd like to ask an open-ended
question about the goals of the S7 OOP system, which is, where do we see
the ultimate future of object-oriented programming in R being? Do we see S7
eventually complementing S3 and S4 in "base" (in quotes because S4 is
provided by the methods package), or do we see (or even wish?) for S7 to
supplant both S3 and S4 eventually within base R?

My own personal experience, I usually use S4 - why, because it's there, and
also, some of my favorite packages (sp and Matrix) use it, and I like my
code to look like the source code for the language. To that end, when I'm
training up engineers or data scientists to use OOP in R, I have them look
at source code-- but then also have to be choosy about source code for what
lest they become confused by the differences between S3 and S4 (not to
mention R6, RC, and whatever else might be out there).

R is the only language I know of that has multiple different object
oriented systems, and that makes it a big barrier to entry for people
learning the language, and I think the language as a whole would benefit
greatly from having a single standard.

-Ezra

On Sat, Feb 18, 2023 at 12:38?PM Duncan Murdoch <murdoch.duncan at gmail.com>
wrote:

> On 18/02/2023 9:51 a.m., Duncan Murdoch wrote:
> > One more comment:
> >
> > The utils::setBreakpoint() function should be updated to be able to set
> > breakpoints in S7 methods, or a substitute function should be added to
> > the S7 package.
> >
> > RStudio 2022.12.0+353 (not sure if that's the latest) also needs to be
> > taught how to do that, since it doesn't seem to use setBreakpoint.
>
> I took a look at updating setBreakpoint().  I can get findLineNum() to
> work, but setBreakpoint() doesn't work because trace() doesn't work.
> debug() doesn't work either:  it looks as though it is trying to treat
> an S7 method as an S4 method.
>
> Will the already proposed changes help with debugging, or is that a
> completely separate issue?
>
> Duncan Murdoch
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

	[[alternative HTML version deleted]]



[Rd] Adding support for S7 to base R
Ezra Tucker