[Rd] I've written a big review of R. Can I get some feedback?

Avi Gross @v|gro@@ @end|ng |rom ver|zon@net
Tue Apr 12 17:29:08 CEST 2022

Are you going to call this new abbreviated language by the name "Q" or keep calling itby the name "R" as "S" is taken?
As a goal, yes, it is easier to maintain a language that is sparse. It may sort of force programmers to go in particular ways to do things and those ways could be very reliable.
But it will drive many programmers away from the language as it will often not match their way of thinking about problems.
You can presumably build a brand new language with design goals. As you note, existing languages come with a millstone around their necks or an albatross.
R is an extendable language. You can look at many of the packages or even packages of packages such as the tidyverse as examples of adding on functionality to do things other ways that have caught on. Some even partially supplant use of perfectly usable base R methods. Many end up being largely rewritten as libraries in another language such as a version of C to speed them up. 
So I suspect limiting R from doing things multiple ways would encourage making more other ways and ignoring the base language.
But different ways of doing things is not just based on command names but on techniques within programming. Anyone who wants to can do a matrix multiplication using a direct primitive but also by a nested loop and other ways. There is nothing wrong with allowing more ways.
Yes, there is a huge problem with teaching too much and with reading code others wrote. 
But I suggest that there have been languages that tried to make you use relatively pure functional programming methods to solve everything. Others try to make you use object-oriented techniques. Obviously some older ones only allow procedural methods and some remain in the GOTO stage. 
Modern languages often seem to feel obligated to support multiple modes but then sometimes skimp on other things. R had a focus and it left out some things while a language like Python had another focus and included many things R left out while totallyignoring many it has. BOTH languages have later been extended through packages and modules because someone WANTED the darn features. People like having concepts they can use like sets and dictionaries, not just lists and vectors. They like having the ability to delay evaluation but also to force evaluation and so on. If you do not include some things in the language for purist reasons, you may find it used anyway and probably less reliably as various volunteers supply the need.
Python just added versions of a PIPE. That opens up all kinds of new ways to do almost anything. In the process, they already mucked with a new way to create an anonymous function, and are now planning to add a new use for a single underscore as a placeholder. But a significant number of R users already steadily use the various kinds of pipes written before using various methods and that can break in many cases. Is it wiser to let a large user body rebel, or consider a built-in and efficient way to give them that feature?
What I wonder is that now that we have a pipe in R, will any of the other ways wither away and use it internally or is it already too late and we are stuck now with even more incompatible ways to do about the same thing?

-----Original Message-----
From: J C Nash <profjcnash using gmail.com>
To: Reece Goding <Reece.Goding using outlook.com>; r-devel using r-project.org <r-devel using r-project.org>
Sent: Tue, Apr 12, 2022 10:17 am
Subject: Re: [Rd] I've written a big review of R. Can I get some feedback?

Any large community-based project is going to be driven by the willing volunteers. Duncan Murdoch
has pointed this out a long time ago for R. Those who do are those who define what is done.

That said, I've felt for quite a long time that the multiplicity of ways in which R can do the same
tasks lead to confusion and errors. Arguably, a much stricter language definition that could execute
95% of the existing user R scripts and programs would be welcome and provide a tool that is easier
to maintain and, with a great deal of luck, lead to better maintainability of user codes.

And, as others have pointed out, backward compatibility is a millstone.

Whether anything will happen depends on who steps up to participate in R.

In the meantime, I believe it is important for all R users to report and try to fix those things
that are egregious faults, and documentation fixes are a very good starting point.

John Nash

On 2022-04-09 15:52, Reece Goding wrote:
> Hello,
> For a while, I've been working on writing a very big review of R. I've finally finished my final proofread of it. Can I get some feedback? This seems the most appropriate place to ask. It's linked below.
> https://github.com/ReeceGoding/Frustration-One-Year-With-R
> If you think you've seen it before, that will be because it found some popularity on Hacker News before I was done proofreading it. The reception seems largely positive so far.
> Thanks,
> Reece Goding
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

R-devel using r-project.org mailing list

	[[alternative HTML version deleted]]

More information about the R-devel mailing list