grantmcdermott / tinyplot

Lightweight extension of the base R graphics system
https://grantmcdermott.com/tinyplot
Apache License 2.0
226 stars 7 forks source link

Package name: plot2 vs. baseplot vs. tinyplot vs. ? #22

Closed zeileis closed 8 months ago

zeileis commented 1 year ago

I have been wondering whether plot2() is the best and/or most intuitive name for the package and its main function. It's certainly "ok" but I'm not excited about it. So I wanted to ask what you think, Grant @grantmcdermott and Vincent @vincentarelbundock, maybe others have thoughts/ideas as well.

A somewhat longer but more verbose alternative might be baseplot(). Short alternatives would be draw() or viz(). Currently, I think I slightly prefer baseplot() over plot2(). Other opinions or better alternatives?

vincentarelbundock commented 1 year ago

Also not sure about plot2. To me, it suggests that it either wants to supersede plot(), or that its ultimate goal is to cover the feature set of ggplot2. Neither of which is quite the case.

I think I like baseplot; matches basetheme. tinyplot would also be an option, but I think I like that less.

I don't have great original ideas for package names, sorry. Will come back if I think of one.

zeileis commented 1 year ago

Thanks, Vincent, very useful!

And finally I also have to say that I'm not very creative/successful when it comes to package names...

grantmcdermott commented 1 year ago

Thanks for kicking this discussion off @zeileis. I agree that this is something we need to resolve before a CRAN submission.

I'm not wedded to plot2 and your pushback is certainly shifting my priors... But allow me to play the role of defence here for a moment. In my view, plot2 has some key arguments in its favour:

I had one more point that escapes me for the moment and I have to run to pick up the kids. But will leave these two for the moment. For the record, I too prefer baseplot among the alternatives.

(Maybe we put it to popular vote on Tiwtter/Mastodon?)

zeileis commented 1 year ago

Thanks, Grant, interesting! Just a couple of comments:

vincentarelbundock commented 1 year ago

FWIW, all the views I expressed above were (extremely) weakly held. I find your arguments reasonably compelling, and in the end I don’t think it matters that much.

plot2 might be seen by people who read the alphabetical cran index.

Feels like you should think about the above for a bit and prioritize your own vibes rather than a Twitter poll.

zeileis commented 1 year ago

+1 Definitely your call, Grant @grantmcdermott .

grantmcdermott commented 1 year ago

Thanks both. I don't want this to be a unilateral decision, so will perhaps ask a handful other follks instead of a poll. Either way, will mull on it a bit more this weekend.

joshuaulrich commented 1 year ago

I've independently been thinking about names for plotting functions, as part of redesigning quantmod's charting functionality. I'm leaning toward chart() for that, but have also considered graph(). Seems like the latter could be a contender here.

eddelbuettel commented 1 year ago

baseplot sounds limiting to me, as in "if that is the base what buids on top of it" ?

tinyplot works for me because of the zero depenencies, but that may not be everybody's cup of tea (== loosers!) :wink:

But they key feature really is that it is a "pure" and "base only" plot() package. So how about pplot as a shorthand for pureplot? Or with a wink maybe bip for 'batteries-included-plot' as nothing else is needed? It needs to be short and concise and descriptive.

eddelbuettel commented 9 months ago

Bubbling this back up as there is chatter of a CRAN release come 2024. plot2 is really dominated by any of the alternatives so pretty-please pick something ... Just let us know as

will mull on it a bit more this weekend.

was by now a few weekends ago :wink:

friendly commented 8 months ago

plot2() arose as an attempt to re-design plot() to be more general while remaining in the framework of base R graphics. In a way, similar to the transition from the original ggplot to ggplot2.

Echoing @eddelbuettel I think it is time to release plot2 to CRAN.

grantmcdermott commented 8 months ago

Thanks for the prompts :-)

To be clear: This is something I'm hoping to decide pretty soon, as one of the few remaining above-the-line tasks for CRAN submission. https://github.com/grantmcdermott/plot2/issues/108

b-rodrigues commented 8 months ago

Hey all, I've discovered this package literally 10 minutes ago as I saw @vincentarelbundock tweet on it. My 2 cents, for what they're worth: I think I'd prefer tinyplot.

I think it'll make googling and discussing it easier than baseplot which could lead to quiproquos (do you mean "baseplot" or "base plot()"? It also conveys the idea of being a lightweight package very well.

grantmcdermott commented 8 months ago

Thanks for all the suggestions and thoughtful discussion, everyone. I want to finalise this package name ASAP, so we can move ahead with CRAN submission. Here are my summary thoughts based on all the feedback so far:

IMO the package name is now a straight shot between two options: plot2 vs tinyplot.

plot2

Pros

Cons

tinyplot

Pros

Cons

I plan to make a decision by the end of the week. So, last call for any additional inputs if anyone has any!

eddelbuettel commented 8 months ago

Nothing is easy or perfect. And note that you could separate package name and function names. But tinytable and tt() is damn fine example. Maybe tinyplot() and even tp() ?

At the end nothing really matters. Don't overthink it. Pick one, move on.

rupertoverall commented 8 months ago

I just came across this issue and wanted to make a plea for informative package/function names. With copy/paste and autocomplete dominant, the typable length of functions is just not really a big issue these days. Readability of code is. The 'tiny...' family of names seems like a clear winner here.

[I wonder whether the package could not be called 'tiny' and the the functions retain their base forms (e.g. tiny::plot()). I think enough people don't use explicit namespaces that that may become confusing though.]

zeileis commented 8 months ago

I think calling the package only tiny would suggest something far too broad because there are already tinytest, tinytable, tinytex, etc. So tiny only might convey the erroneous impression that it is a sort of meta package.

Also, using the fully-qualified names adds an unnecessary overhead if you have already imported a function in a NAMESPACE. So at least in package code the :: should better be avoided.

lrberge commented 8 months ago

Not strong views here but I agree with Achim that the tiny prefix may be too broad. plot2 is nice. I also agree with @eddelbuettel wise words: Your choice is the right choice!

zeileis commented 8 months ago

Just to clarify: tinyplot is ok. But just tiny with function tiny::plot etc. would be a bad choice.

Regarding plot2 vs. tinyplot I think that both have advantages and disadvantages and I don't have a strong preference. Whatever Grant picks will be the right choice :+1:

friendly commented 8 months ago

Just to weigh in again here. Grant has been magnanimous in opening this to discussion, and has presented pros and cons.

I am strongly persuaded that the tiny attribute is not as important semantically as the 2, indicating that plot2 extends plot as a new generation of base-R graphics.

grantmcdermott commented 8 months ago

Hi all. Thanks for bearing with me and providing such constructive feedback.

After much thought, I've decided to rename the package to tinyplot. The main function will similarly be called tinyplot(), though I will also provide a "no vowels" alias plt() to accommodate those who would like a shorthand. I know that aliases can be tricky from a documentation standpoint, but I feel that it's worth it in this case. I also like the fact that the no vowel alias provides a consistent---one might even say "tiny"--- syntax for other plot types that we'd like to support in the future: tinyhist() <-> hst(), tinybarplot() <-> brplt(), etc.

Summarising:

Other comments:

I'll try to push through the necessary changes in the codebase and repo sometime this week. This will correspond to v0.0.5 of the package, which will be one of the last dev releases before we submit to CRAN.

Thanks again for everyone's help and input!

lrberge commented 8 months ago

Yay! Welcome to the world tinyplot!

arnejohannesholmin commented 7 months ago

Tired of the many dependencies of ggplot2 I googled "tinyplot", and it lead me to your package. I understand that you are not aiming for a complete replacement of all ggplot2 features, but I do hope that you are aiming to be the tiny alternative. Is there an ETA on the CRAN release?

grantmcdermott commented 7 months ago

@arnejohannesholmin Tracking in this milestone. Goal ETA is end of this month. (Fingers crossed.)

harrelfe commented 7 months ago

Please reconsider. tinyplot implies that you are producing a very small plot. That’s not what you want. The name needs to connote something related to “lean” or “base”. And short names are better, e.g. bplot.

grantmcdermott commented 7 months ago

Sorry @harrelfe, but that ship has sailed. The SEO false positives case against “base” & co. were pretty well motivated IMO. Note too that the plt() alias is always there if you want a shorthand alternative for the main function call.

grantmcdermott commented 3 months ago

PSA: The package is now on CRAN: https://cran.r-project.org/web/packages/tinyplot/index.html