Message-ID: <28fddd$f2jf83@ironport10.mayo.edu>
Date: 2020-12-07T18:29:06Z
From: Terry Therneau
Subject: [R/S-PLUS] [EXTERNAL] Re: [External] anonymous functions
In-Reply-To: <alpine.DEB.2.21.2012071119120.3377@luke-Latitude-7480>
Luke,
? Mostly an aside.? I think that pipes are a good addition, and it is clear that you and
other R-core thought through many of the details.?? Congratulations on what appears to be
solid work. I've used Unix since '79, so it is almost guarranteed that I like the basic
idiom, and I expect to make use of it.? Users who think that pipes -- or any other code --
is so clear that comments are superfluous is no reflection on R core, and also a bit of a
hobby horse for me.
I am a bit bemused by the flood of change suggestions, before people have had a chance to
fully exercise the new code. ? I'd suggest waiting several months, or a year, before major
updates, straight up bugs excepted. ? The same advice holds when moving into a new house.
One? experience with the survival package has been that most new ideas have been
implemented locally, and we run with them for half a year before submission to CRAN.? I've
had a few "really great" modifications that, thankfully, were never inflicted on the rest
of the R community.
Terry T.
On 12/7/20 11:26 AM, luke-tierney at uiowa.edu wrote:
> I don't disagree in principle, but the reality is users want shortcuts
> and as a result various packages, in particular tidyverse, have been
> providing them. Mostly based on formulas, mostly with significant
> issues since formulas weren't designed for this, and mostly
> incompatible (tidyverse ones are compatible within tidyverse but not
> with others). And of course none work in sapply or lapply. Providing a
> shorthand in base may help to improve this. You don't have to use it
> if you don't want to, and you can establish coding standards that
> disallow it if you like.
>
> Best,
>
> luke
>
> On Mon, 7 Dec 2020, Therneau, Terry M., Ph.D. via R-devel wrote:
>
>> ?The shorthand form \(x) x + 1 is parsed as function(x) x + 1. It may be helpful in
>> making code containing simple function expressions more readable.?
>>
>> Color me unimpressed.
>> Over the decades I've seen several "who can write the shortest code" threads: in
>> Fortran, in C, in Splus, ...?? The same old idea that "short" is a synonym for either
>> elegant, readable, or efficient is now being recylced in the tidyverse.?? The truth is
>> that "short" is actually an antonym for all of these things, at least for anyone else
>> reading the code; or for the original coder 30-60 minutes after the "clever" lines were
>> written. Minimal use of the spacebar and/or the return key isn't usually held up as a
>> goal, but creeps into many practiioner's code as well.
>>
>> People are excited by replacing "function(" with "\("? Really??? Are people typing code
>> with their thumbs?
>> I am ambivalent about pipes: I think it is a great concept, but too many of my
>> colleagues think that using pipes = no need for any comments.
>>
>> As time goes on, I find my goal is to make my code less compact and more readable.?
>> Every bug fix or new feature in the survival package now adds more lines of comments or
>> other documentation than lines of code.? If I have to puzzle out what a line does, what
>> about the poor sod who inherits the maintainance?
>>
>>
>>
>
[[alternative HTML version deleted]]