On Sunday, October 30, 2016, William Stein <wst...@gmail.com> wrote: > On Sun, Oct 30, 2016 at 12:09 PM, Emmanuel Charpentier > <emanuel.charpent...@gmail.com <javascript:;>> wrote: > > Dear William, > > > > thanks for this advice, which I'll consider seriously, notwithstanding > its > > total opacity to me at the moment.... > > > > I just checked that the r interface in SMC is indeed different from what > > exists in sage "standalone". It is also a bit difficult to understand, > due > > to present lack of documentation. Cut-n'paste from a sagews : > > > > help("r") > > ︡983aebe0-3f6e-46ff-9d40-ce8e153480d2︡{"stdout":"no Python documentation > > found for 'r'\n\n"}︡{"done":true}︡ > > > > But the behavior of R in % cells is crystal-clear. The first difficulty I > > have is to understand how to exchange data (or other structures) between > R > > and Sage (which is the *whole* point of the exercise...). > > > > Do you think that this R interface, specific to Sagemath Cloud, could be > > ported to Sage ? And do you think that t would involve R-version specific > > code ? > > I don't think this question really makes any sense. What you have to > do is simply learn Jupyter... then rethink the question. Except > that's harder than it should be...! I just posted this to > https://gitter.im/jupyter/jupyter: "Hi, I just spent a shockingly > large amount of time searching and googling for basically an overview > of what a Jupyter kernel is and how to write one. There's some old > deprecated docs about this, which all have big pointers to newer docs. > I can't find any new docs that simply explain what a Jupyter kernel is > and how to write one. I'm trying to convince other Sage developers to > use Jupyter kernels instead of the pexpect interfaces I wrote for Sage > -- at least for R mode -- and it's impossible to convince them if I > can't even point to the docs. So help... For example, going here, I > would expect under "Kernels" the docs I want, but I can't find > anything."
Answer: https://github.com/jupyter/jupyter/issues/216 > > > > > Another potential stumbling point it that the main part of the interface > > (the IRkernel package), has not (het) been accepted by CRAN, rendering > its > > future ability questionable. > > > > I plan to look also at what is offered by the Rpy2 interface It would > take a > > bit of work to emulate the behavior of the pexpect nterface, but that > might > > offer a good interim solution (at this time, I have *no* idea about what > the > > IRkernel and its companion libraries are supposed to do). > > > > Last recourse : the R library itself. Again, I don't know (yet) what it > > offers. > > > > Again, thank you for your (a bit frightening...) advice, > > Sorry for being scary. It's just advice. Feel free to ignore, of course. > > > -- > > Emmanuel Charpentier > > > > Le dimanche 30 octobre 2016 17:10:31 UTC+1, William a écrit : > >> > >> On Sun, Oct 30, 2016 at 1:19 AM, Emmanuel Charpentier > >> <emanuel.c...@gmail.com <javascript:;>> wrote: > >> > OK. It seems that a clear consensus exists for the excision of R > >> > _proprio > >> > dictu_ from Sage. > >> > > >> > If we break it, can we at least keep the (Sage's) pieces ? An optional > >> > package offering the current R interface(s) depending on a > >> > systemwide(at > >> > least user-reachable) version of R and the R library might offer the > >> > functionality without entailing the (not so trivial) work of > maintaining > >> > our > >> > own R port. > >> > > >> > Do you have an idea of the amount of work involved ? And how to, do > it ? > >> > The > >> > rpy2 part is probably easy, but I expect surprises on the pexpec(t) > >> > front > >> > (at least if we want to keep compatibility with existing code using > >> > current > >> > R interface facilities...). Any hint on the right starting point(s) > >> > would > >> > be welcome... > >> > > >> > BTW : I have also had a (quite superficial) look at what pandas and > >> > statsmodel claim to do. They (and scikit-learn, which look > interesting, > >> > and > >> > stan, already available from Python) might be indeed useful for > >> > run-of-the-mill descriptive analysis and regression models (and Stan > for > >> > more exotic modeling). Packaging them for Sage might prove useful. > >> > > >> > However, those 9000+ R packages are here for a reason : if some of > them > >> > (a > >> > small minority, IMHO) are obvious PhD-earning byproducts, others aim > to > >> > solve difficult (if specialized) problems, badly solved (or not even > >> > considered) by the aforementioned trio. keeping a way to reach them > from > >> > Sage might be important. Hence my plea for an "R interface(s)" > package. > >> > > >> > Another (IMHO futile) reason for keeping an R interface in our arsenal > >> > is > >> > "name recognition" : quoting R in a "Materials and methods" section no > >> > longer raises questions from reviewers ; somehow, I doubt that pandas > >> > and > >> > statmodels get the same answer... > >> > > >> > What can you add ? Can someone propose a work plan ? > >> > >> I'm not thinking about politics and name recognition below - I'm just > >> providing a technical/engineering perspective. > >> > >> If anybody is seriously planning to work on the R pexpect interface, I > >> would personally suggest they consider instead working on the R > >> Jupyter kernel bridge instead, and maybe create a drop in replacement > >> for the current pexpect interface that uses the R Jupyter kernel. > >> This would likely be time well spent. This is what we (mostly Hal > >> Snyder) have been doing with SageMathCloud, where now the %r mode in > >> Sage worksheets is implemented entirely using Jupyter (which we did > >> due to user bug/robustness reports with the sage pexpect interface): > >> > >> > >> https://github.com/sagemathinc/smc/blob/master/ > src/smc_sagews/smc_sagews/sage_jupyter.py > >> > >> Some history - I wrote those (stupid) pexpect interfaces in > >> 2005-2006 as a way to bootstrap making Python talk to everything else. > >> However, they are basically the worst *viable* approach to the > >> problem. Jupyter kernels are potentially a lot more work than using > >> pexpect, but they are clearly a better approach. > >> > >> Yes, using pexpect is one way to write a Jupyter kernel, but > >> fortunately there are better ways. For example, the Jupyter kernel is > >> 1000(s) of lines of nontrivial code written in the R language, which > >> is being improved all the time due to extensive use by users. The > >> Jupyter R kernel is a serious actively developed project: > >> > >> https://github.com/IRkernel/IRkernel > >> > >> Compare that to the Sage R pexpect interface... > >> > >> https://github.com/sagemath/sage/commits/master/src/sage/ > interfaces/r.py > >> > >> > >> > >> -- William > >> > >> > >> -- > >> William (http://wstein.org) > > > > -- > > You received this message because you are subscribed to the Google Groups > > "sage-devel" group. > > To unsubscribe from this group and stop receiving emails from it, send an > > email to sage-devel+unsubscr...@googlegroups.com <javascript:;>. > > To post to this group, send email to sage-devel@googlegroups.com > <javascript:;>. > > Visit this group at https://groups.google.com/group/sage-devel. > > For more options, visit https://groups.google.com/d/optout. > > > > -- > William (http://wstein.org) > -- Sent from my massive iPhone 6 plus. -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.