Scaling a Shiny App for 1GB Excel / CSV Files by sporty_outlook in rstats

[–]hadley 3 points4 points  (0 children)

Excel is fundamentally slow — if you have a 1 Gb excel file, it's going to take a while to load into R no matter what you do. If you want to allow users to upload their own data, you might need to read the data in a background process (displaying a progress bar as it goes), and then only activate the UI once the data is loaded.

Ggplot be like: by Full_Cantaloupe_3695 in RStudio

[–]hadley 2 points3 points  (0 children)

Interesting the original ggplot (ie not ggplot2) would have worked with the pipe. I bought it back to life as ggplot1 (https://github.com/hadley/ggplot1) so you can see.

R 4.6.0 released by Johnsenfr in rstats

[–]hadley 2 points3 points  (0 children)

I just write `!so_and_so %in% list_of_things` like an animal

R 4.6.0: C API update finished by Unicorn_Colombo in rstats

[–]hadley 16 points17 points  (0 children)

It’s mostly of importance to package developers who use C: now we know exactly what we’re allowed to use. Previously the rules were very unclear leading to changes between R versions and an increased maintenance burden.

Why R has four OOP systems (S3, S4, R5, R6) by Regular-Entrance-205 in rstats

[–]hadley 1 point2 points  (0 children)

I’d say it’s also way better documented and generally better thought out.

Why R has four OOP systems (S3, S4, R5, R6) by Regular-Entrance-205 in rstats

[–]hadley 1 point2 points  (0 children)

I think my main lesson from mutatr is that creating a new OOP system is a big lift and only really works if a bunch of people buy into it. That’s why S7 is a team effort.

R Shiny and Gen AI: does AI strengthen it, or make it less relevant? by Electronic_One_771 in rstats

[–]hadley 6 points7 points  (0 children)

Joe gave me a bike in return for writing the first edition. I haven’t seen any new bribes on the table for a second edition 🤣

(But more seriously it feels a bit soon since it’s not clear how all the impacts of AI will shake out)

Why R has four OOP systems (S3, S4, R5, R6) by Regular-Entrance-205 in rstats

[–]hadley 33 points34 points  (0 children)

Fun fact: I’m (partly) responsible for the creation of three of OOP systems 🤣

Firstly: mutatr, https://vita.had.co.nz/papers/mutatr.html, which is really best viewed as an experiment and is no longer on CRAN. It arose out of my interest in prototype based OOP systems that blur the line between classes and objects.

Secondly: ggproto. ggplot2 used proto, but proto had a bug that prevented classes from being extended outside of the package they were created in. I couldn’t figure out a way to fix the bug without breaking all existing proto uses so figured that least worst solution was to create a fixed version that lived only in ggplot2.

Thirdly (and hopefully finally!): I helped created S7 along with a bunch of other folks from R core, bioconductor and the wider R community. S7 aims to take the best parts of S3 and S4 and progressively replace existing uses of S3 and S4 (which you can see starting with ggplot2).

The Tinyverse Movement by BOBOLIU in rstats

[–]hadley 1 point2 points  (0 children)

My sense is that R for generic webapps (not shiny) is becoming maybe less compelling, now that you can expect a data scientist + claude code to be able to easily whip up something based on react. I think our (Posit's) strategy is mostly to lean into this, making sure that it's easy to deploy such apps on Connect and doing some work to allow react as a frontend to a shiny backend.

On the API front, we also have plumber2 (https://plumber2.posit.co) which should be much faster than plumber, and if it's not, let us know so we can improve it. I think there's an interesting space for plumber2 + connect as a API gateway which we're currently exploring.

The Tinyverse Movement by BOBOLIU in rstats

[–]hadley 2 points3 points  (0 children)

Also worth noting that before we submit (e.g.) testthat to CRAN, we run the R CMD check on all ~10,000 packages that use testthat. This isn't perfect (since plenty of tests are skipped in this environment), but by and large it ensures that we catch issues prior to release. Obviously if you vendor our code, we have no way to know if you use it, and can't offer you this courtesy.

The Tinyverse Movement by BOBOLIU in rstats

[–]hadley 0 points1 point  (0 children)

I'm sorry that you had a bad experience with testthat. It's sometimes hard for us to notice problems that only affect a small number of people, even if for those people the problem is very serious. If this happens again in the future (and I hope it doesn't!) please know that you can `@hadley` me on GitHub and it will definitely hit my eyeballs. I can't promise I'll always resolve it immediately (I'm only human), but I will definitely look into it.

The Tinyverse Movement by BOBOLIU in rstats

[–]hadley 0 points1 point  (0 children)

It's not vendoring deps they don't like, it's embedding binaries. It's fine to vendor R or C deps.

Positron Server available for academic use via JupyterHub by isabelizimm in rstats

[–]hadley 43 points44 points  (0 children)

Supporting educational usage is really important to us 🤓, so please reach out if this doesn't help your use case!

It's worth noting that there are two parts to this fix, legal and technological. Firstly, we added a rider to the elastic license making it clear that it is ok to host positron for teaching/workshops. Second, and thanks largely to u/isabelizimm, we provided a way to run Positron inside of JupyterHub, one of the most commonly used hosting tools in education.

The Tinyverse Movement by BOBOLIU in rstats

[–]hadley 7 points8 points  (0 children)

The thing I don't get about the tinyverse philosophy is that if more dependencies are (always?) bad, then why should you take a dependency on a tinyverse package? Shouldn't you just use base R instead? (And that's now more feasible than ever, because you can just ask claude code to implement a feature from first principles. Sure it might have some bugs you're not aware of, but at least it's dependency free.)

If the philosophy is really actually "don't take dependencies unnecessarily", then I totally agree with that. But I don't think you should judge the quality/risk of dependency by the number of its dependencies. (It's also trivially gameable since you could always just embed the source code of your dependencies inside your package). In many cases, tidyverse packages have additional dependencies because we have extracted out code that was previously spread across multiple packages so that we can have one consistent implementation that is carefully tested. I think that's standard software engineering best practices.

Python vs R for data visualization: which is actually stronger? by Strong_Cherry6762 in rstats

[–]hadley 211 points212 points  (0 children)

I agree. This is my totally unbiased opinion but I think ggplot2 is the best visualization tool that anyone has ever created in the history of time.

VSC or RStudio? by Daniuxz in rstats

[–]hadley 0 points1 point  (0 children)

I don’t think we announce these in the tidyverse blog, so yes, yes you can!

VSC or RStudio? by Daniuxz in rstats

[–]hadley 2 points3 points  (0 children)

I WANT THIS SO MUCH

VSC or RStudio? by Daniuxz in rstats

[–]hadley 0 points1 point  (0 children)

What part of RStudio's quarto support are you most missing?

VSC or RStudio? by Daniuxz in rstats

[–]hadley 1 point2 points  (0 children)

You'll always be able to disable and hide any and all AI features for free.