Le code R est-il viable pour la production (déployé)

25

J'ai lu un certain nombre d'articles qui parlent d'entreprises telles que Google, Facebook et bien d'autres utilisant R pour la recherche. L'autre scénario que j'ai lu concerne les entreprises utilisant R pour prototyper une solution d'analyse, puis la réimplémenter dans une autre langue.

J'essaie de trouver de la documentation sur les entreprises utilisant R pour le code d'analyse de production réel. Un cas d'utilisation peut être un système de recommandation avec lequel l'utilisateur interagit via une page Web qui obtient une réponse d'un script R exécuté sur un serveur distant. Le fait que j'ai du mal à trouver de tels rapports me fait me demander si ce n'est pas conseillé. Si oui, pourquoi?

gouttes
la source
1
C'est une bonne question. J'ai une intuition, mais je n'en sais pas assez pour en faire une réponse réelle. Je soupçonne que parce que R est distribué sous la GPL, tout produit dérivé l'utilisant doit également être gratuit et open-source. Cela peut signifier que les entreprises souhaitant réaliser un profit avec les logiciels d'entreprise se détourneraient de R car elles ne pourraient pas vendre le produit.
gregmacfarlane
3
Seulement si votre profit est basé sur la vente du logiciel --- et même dans ce cas, certaines personnes donnent toujours le logiciel comme par exemple RStudio dont le code source est sur github.
Dirk Eddelbuettel

Réponses:

16

Oui, ça l'est. Regardez par exemple sur cette page la merveilleuse instance de serveur RServe R sans tête (par le membre R Core Simon Urbanek) qui répertorie ces déploiements:

Some projects using Rserve:
   The Dataverse Network Project   Phenyx                     "J" interface
   Nexus BPM                       Taverna                    Bio7
   INTAMAP                         Screensaver HTS LIMS       CRISP
   WWARN

avec des liens sur la page référencée ci-dessus.

"L'industrie" a tendance à être plus méfiante sur les détails que le milieu universitaire, vous aurez donc du mal à trouver des déclarations "officielles". Mais des fournisseurs comme Revolution Analytics ou Oracle ship R et leurs vendeurs peuvent avoir des histoires pour vous ...

Dirk Eddelbuettel
la source
3
+1 pour les vendeurs. Supposons que vous souhaitez acheter quelque chose et qu'un bon nombre de vendeurs distribueront le SSN de leur PDG.
Fomite
1

Généralement pas car R est un langage interprété, qui est en moyenne beaucoup plus lent que le code compilé équivalent. Bien que la conversion de votre programme en C, Fortran ou Java nécessite un investissement important, le code peut littéralement fonctionner 10-100X plus rapidement qu'une version R équivalente. De plus, R dispose d'outils très limités pour manipuler de grands ensembles de données, en particulier ceux qui nécessitent des clusters pour traiter ou nécessitent un matériel spécial. De plus, la plupart des implémentations commerciales doivent fournir des interfaces utilisateur et s'adapter aux cadres existants, qui sont généralement écrits dans d'autres langues. Bien que vous puissiez vous interfacer avec le code R existant de la plupart des langues compilées (il existe des wrappers), vous constaterez que vos routines numériques de base ne seraient toujours pas plus rapides que le code R d'origine. À la fin de la journée,

user1337732
la source
2
> (...) le code peut littéralement fonctionner 10-100X plus rapidement qu'une version R équivalente, je ne suis pas d'accord. Presque toutes les bibliothèques R sont écrites en C ou en Fortran. Le R fonctionne principalement comme une "colle" entre eux, et ses performances relativement faibles ne comptent pas.
Adam Ryczkowski du
1
Pas vrai. Bien que la bibliothèque principale puisse être écrite en C, la plupart des algorithmes de haut niveau en R sont écrits en R. L'optimisation JIT change les règles en ce qui concerne les performances des langages interprétés par rapport aux langages compilés, mais pour autant que je sache, il n'y a aucun effort ces lignes en cours pour R (Python a un effort robuste: voir PyPy).
user1337732
1
J'utilise régulièrement R pour travailler sur des matrices de 2 Go.
Jan Galkowski
0

Je crois (mais cela est basé sur une anecdote) que R a tendance à être davantage utilisé comme langage de prototypage par les entreprises que vous nommez ci-dessus. R excelle dans la tâche de développer et de tester plusieurs modèles rapidement et efficacement. Cependant, ce n'est pas un bon ajustement pour les tâches de personnalisation car celles-ci doivent souvent avoir lieu lorsqu'un utilisateur interagit avec un site Web particulier et je crois (encore une fois, c'est surtout une anecdote) que ces modèles ont tendance à être réécrits dans une langue compilée (Java, C, C ++).

Cela étant dit, bonne question et je serais ravi d'avoir tort sur ce point.

richiemorrisroe
la source