[R] User Interfaces for R

Ivan Krylov krylov@r00t @ending from gm@il@com
Fri Jan 11 11:14:41 CET 2019


On Thu, 10 Jan 2019 19:25:30 -0500
Duncan Murdoch <murdoch.duncan using gmail.com> wrote:

> Eric's suggestion of Shiny is newer, and is a really well-designed 
> system.  A fairly steep learning curve, but worth it.

I understand the need for progress and I really like Shiny's API - it
feels very declarative and easy to write, and I don't care about the
presentation as long as it gets the job done - but all things have
their use cases, which is why I waited a bit before suggesting tcltk
and emphasised its low resource footprint and portability.

For example, an undergraduate student I work with has a laptop with
just 2 gigabytes of RAM. Now, of course there is a lot you can do in R
with that amount of memory - I had to make do with less until late 2016
- but the moment he launches a browser, it pages everything else out.
For him, using Shiny would be extremely slow if not impossible to use.
This is something browsers should be fixing and not the fault of Shiny,
but I can't ignore it either way. (And 2G is not the limit: the renderer
process of browser-based[*] Skype client has somehow managed to
allocate 5G of memory on the machine I'm typing this message on.)

Also, personally, I would prefer not to launch an asynchronous web
server and transfer large files from my computer back to my
computer (but into /tmp)[**] for something as simple as what could be
accomplished with tcltk::tk_choose.files().

But those issues (and things like requiring an Internet connection to
render TeX-style math[***]) aside, Shiny is really a fine and modern
user interface package, and should be preferred if you have the
resources.

Feel free to stop me if you think I'm engaging in off-topic here.

-- 
Best regards,
Ivan

[*] https://electronjs.org/apps/skype: "Electron accomplishes [building
cross-platform desktop applications with HTML, CSS, and JavaScript]
by combining Chromium and Node.js into a single runtime"

[**] https://shiny.rstudio.com/reference/shiny/latest/fileInput.html:
"The path to a temp file that contains the data that was uploaded."

[***] https://rdrr.io/cran/shiny/src/R/shinyui.R#sym-withMathJax: does
MathJax license require referencing https://mathjax.rstudio.com instead
of bundling it together with Shiny, like the rest of JavaScript
libraries are?



More information about the R-help mailing list