Dear data analyst (or small investor?),

В Fri, 13 Jun 2025 11:49:37 +0000 (UTC)
Small Investor via R-help <r-help@r-project.org> пишет:

> 1. Version compatibility issues seem to be on the rise. Very
> often, you get the message that package x was built on R version y
> (and thus, won't work in your version of R).

Is this about the warning that appears when you are running the
previous patch version of R and install a new binary from CRAN? I think
R had code to signal it since 2002:

getRversion()
# [1] ‘4.4.0’
library(MASS)
# Warning message:
# package ‘MASS’ was built under R version 4.4.3 

It's not that it won't work: the R developers are very careful not to
break any interfaces between patch releases (those that only differ in
the "z" component in "R-x.y.z"). But this is a sign you probably need
to update to the latest patch release as well and enjoy the bug fixes.

> When you update to the latest version of R, you realize that not all
> packages are available for that version. It seems that for each
> version, only a (non-predictable) subset of packages is available.

Let's quantify this. What are the packages that fell of CRAN that you
miss and would like to use again?

Some of them may be alive and well elsewhere. (R-universe? Private
repositories?) Others, well. The first rule of the free software club
is that neither the developers, nor the contributors, nor the users owe
each other anything (except basic courtesy, and even that is
subjective). Despite that, when Dr. Jim Lemon passed away in September
2023, people kept his 'plotrix' package maintained (thanks Duncan
Murdoch!). Maybe you can find someone to maintain the packages you need
too.

> 2. The overhead of installing new packages seems to be on the rise. It
> seems that the packages depend on more and more other packages. The
> more packages you have in the 'foundations' of package x, the more
> likely it is that one of these causes an error and the whole stack
> fails. Installing used to be easy back in the day: You got a 20 lines'
> output. Now you get endless prints.

Deep and/or wide dependency trees are on the rise in programming as a
whole, not just R. Modern package managers make it possible to program
with dependencies the same way we previously learned to program with
loops, functions, and classes. Here's a take on the NodeJS ecosystem:

https://sambleckley.com/writing/npm.html

And here are a few takes on CRAN:

https://journal.r-project.org/articles/RJ-2023-060/
https://aitap.github.io/2020/07/10/cran.html

(I think that Lluís Revilla Sancho <https://llrs.dev/> also discussed
these problems, but I cannot find a post dedicated to the dependency
problems right now.)

15 years ago our dependencies had more stable interfaces and were less
numerous by necessity, both because the tools we used to manage the
dependencies were blunter, and because the world was less connected,
making it harder to install new dependencies or upgrade them at will.
Nowadays the assumption of always-on connectivity is easier to make,
and the developers are expected to solve compatibility problems with
version pinning when they reuse code from other packages:
https://utcc.utoronto.ca/~cks/space/blog/programming/BuildSystemsAndAPIChanges

(There are downsides to this approach too, such as the security patch
problem, but all of this is as old as the static linking vs. dynamic
linking debate; don't expect a decisive resolution soon.)

Not everyone is happy with this situation either, see
<https://www.tinyverse.org/>, but one has to be pragmatic. If a package
does what you want but requires a hundred dependencies, it may still
save you time and effort to use it, at least in the short run.

As for why software can't stay a product instead of becoming a process,
I don't know. I'm not sure we can do better as an industry.

> I may be mistaken but some packages seem to require admin rights on
> your computer which you don't often have on your work PC.

Not on Windows or macOS, where statically linked binary packages with
dependencies included are already available from CRAN. (Third-party
dependencies bundled with the package. Isn't that a nightmare for an IT
security department?)

> If you put in a job announcement that somebody has to know R, it
> doesn't mean the same thing for different people.

> If you compare the use experience of R in 2025 to that of Matlab, the
> difference is striking: Matlab is concise and clear, R is more and
> more about endless prints.

Out of the members of the R community, who should be assuming the role
of Mathworks and instituting a monoculture? Can the R community even
survive being made into a monoculture? "There is more than one way to
do it" is much more welcoming than the alternative. Similar things can
be observed about Python and C: data science Python is very different
from web service Python, and so is numerics C vs. embedded C. While a
good Python or C programmer would be capable of contributing to either
kind of project, it helps to specify what the job is about to attract
specialists.

It's not all roses on the other side of the fence, either. Here's
Mathworks breaking a long-standing component of Matlab, preventing a
multi-thousand-$ product of their customer who themselves brought
customers to Mathworks (the product depends on Matlab) from working:
https://eigenvector.com/pls_toolbox-and-matlab-2025a/

At least when free software breaks compatibility, you retain the right
to run the old version indefinitely, and may hire some other
programmer, not necessarily the original developer, to keep it running
for you. (Is it cheaper than upgrading in the long run? Probably not.)

> I don't know if many other people feel the same way, but I think I am
> shifting away from R.

Best of luck in your future endeavours! Learning a new programming
language (especially if it uses a different paradigm) will make you a
better programmer.

-- 
Best regards,
Ivan

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide https://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to