Sorry first sentence should read I agree that `message()` is ideally preferred, precisely because of the reasons Martin stated, it is easily controlled by the user.
On Wed, May 15, 2019 at 9:41 AM Jim Hester <james.f.hes...@gmail.com> wrote: > > I agree that `message()` is in an ideally preferred, precisely because > of the reasons Martin stated, it is easily controlled by the user. > > Unfortunately, in the real world, the windows R gui console and > RStudio (which copied behavior) color messages, and anything on stderr > in fact, in red, which confuses most users who are trained to treat > messages in red as errors. > > This also makes using colored output (where available) more > challenging when using `message()`. You either have to accept the > text as red, or unconditionally change the text color to black or > similar, which can then be unreadable if the user is using a dark > color theme. > > Jenny is an experienced package developer. She knew this tradeoff and > the use of `cat()` in gargle was deliberate choice in an imperfect > world. She did not make this decision out of ignorance of a better > way. > > However there is no way for Jenny or any other package developers to > have a dialog during a CRAN submission, the communication is only in > one direction, if she resubmits explaining her rationale for the > choice she may not even have the same reviewer the next time. > > Bioconductor seems to have a much better review process for > submissions, with real dialog between the reviewer and package author, > perhaps CRAN can learn from that process and improve the submission > experience in the future. > > Jim > > On Wed, May 15, 2019 at 7:41 AM Martin Morgan <mtmorgan.b...@gmail.com> wrote: > > > > message() / warning() / stop() write to stderr whereas print() / cat() > > write (by default) to stdout. Even without being able to suppress messages, > > it is well-established practice (the story is that this is the reason why > > 'stderr' was introduced into unix, > > https://www.jstorimer.com/blogs/workingwithcode/7766119-when-to-use-stderr-instead-of-stdout > > ) to separate diagnostic messages from program output. I agree that gargle > > (in particular, and packages in general, given the theme of this mailing > > list) would be a better package if it used message() where it now uses > > cat(). > > > > Martin > > > > On 5/15/19, 5:04 AM, "R-package-devel on behalf of Joris Meys" > > <r-package-devel-boun...@r-project.org on behalf of joris.m...@ugent.be> > > wrote: > > > > 2) Where cat() is used in gargle, message() is a better option for the > > following reason: > > > > > myfun <- function(){cat("Yes");message("No")} > > > suppressMessages(myfun()) > > Yes > > > > > > ______________________________________________ > > R-package-devel@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-package-devel ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel