Pourquoi R? Les avantages et les inconvénients du langage R

Le langage de programmation R est un outil important pour le développement dans les espaces d'analyse numérique et d'apprentissage automatique. Les machines devenant de plus en plus importantes en tant que générateurs de données, on ne peut que s'attendre à ce que la popularité du langage augmente. Mais R a à la fois des avantages et des inconvénients que les développeurs devraient connaître.

Avec l'intérêt croissant pour le langage, comme le montrent les index de popularité des langages tels que TIobe, PyPL et Redmonk, R est apparu pour la première fois dans les années 1990 et a servi d'implémentation du langage de programmation statistique S. Remarque Roger Peng, un vétéran de la programmation R depuis 18 ans qui enseigne R à la fois à l'université et sur la plateforme en ligne Coursera, «R est le langage le plus utilisé dans le domaine des statistiques».

«J'aime [R] parce qu'il est très facile de programmer à partir d'un niveau plus informatique», dit Peng. Et R est devenu plus rapide au fil du temps et sert de langage de base pour assembler différents ensembles de données, outils ou progiciels, dit Peng.

«R est le meilleur moyen de créer des analyses reproductibles et de haute qualité. Il a toute la flexibilité et la puissance que je recherche pour traiter des données», déclare Matt Adams, un data scientist à Code School, qui propose une formation en programmation en ligne. "La plupart des programmes que j'écris en R ne sont en fait que des collections de scripts organisés en projets."

Le solide écosystème de packages de R et les avantages de la cartographie

Les avantages de R incluent son écosystème de packages. «L'immensité de l'écosystème des packages est certainement l'une des qualités les plus fortes de R - si une technique statistique existe, il y a de fortes chances qu'il existe déjà un package R pour cela», déclare Adams.

«De nombreuses fonctionnalités intégrées sont conçues pour les statisticiens», déclare Peng. R est extensible et offre de riches fonctionnalités permettant aux développeurs de créer leurs propres outils et méthodes d'analyse des données, dit-il. «Au fil du temps, beaucoup plus de gens y ont été attirés par d'autres domaines», y compris les biosciences et même les sciences humaines.

"Les gens peuvent le prolonger sans avoir à demander la permission." En effet, Peng rappelle les termes d'utilisation de R comme étant d'une grande aide il y a de nombreuses années. "Au moment où il est sorti pour la première fois, le plus grand avantage était qu'il s'agissait d'un logiciel libre. Le code source et tout ce qui le concernait était disponible pour être consulté."

Toutes les capacités graphiques et graphiques de R, dit Adams, sont "inégalées". Les packages dplyr et ggplot2 pour la manipulation et le traçage des données, respectivement, "ont littéralement amélioré ma qualité de vie", dit-il.

Pour l'apprentissage automatique, les avantages de R sont principalement liés aux liens étroits de R avec le monde universitaire, explique Adams. «Toute nouvelle recherche dans le domaine a probablement un package R qui l'accompagne dès le départ. Donc, à cet égard, R reste à la pointe», dit-il. "Le package caret offre également une manière assez astucieuse de faire du machine learning en R via une API relativement unifiée." Peng note également que de nombreux algorithmes d'apprentissage automatique populaires sont implémentés dans R.

Les lacunes de R en matière de sécurité et de gestion de la mémoire

Malgré tous ses avantages, R a son lot de lacunes. «La gestion de la mémoire, la vitesse et l'efficacité sont probablement les plus grands défis auxquels R est confronté», déclare Adams. «Des progrès ont été - et sont toujours - faits pour faire des progrès sur ces fronts. De plus, les personnes venant vers R depuis d'autres langues pourraient également considérer R comme excentrique.»

Le principe de base de R émane des langages de programmation construits dans les années 1960, dit Peng. "En ce sens, c'est une sorte de technologie ancienne telle qu'elle a été conçue à l'origine." La conception du langage peut parfois poser des problèmes pour travailler avec de très grands ensembles de données, dit-il. Les données doivent être stockées dans la mémoire physique. Mais comme les ordinateurs ont obtenu plus de mémoire, cela est devenu moins un problème, note Peng.

Des capacités telles que la sécurité n'étaient pas intégrées au langage R, dit Peng. De plus, R ne peut pas être intégré dans un navigateur Web, explique Peng. "Vous ne pouvez pas l'utiliser pour des applications de type Web ou Internet." Il était fondamentalement impossible d'utiliser R comme serveur principal pour faire des calculs en raison de son manque de sécurité sur le Web, dit-il. Le problème de sécurité, cependant, a été atténué par des développements tels que l'utilisation de conteneurs virtuels sur la plate-forme cloud Amazon Web Services, explique Peng.

Pendant longtemps, il n'y avait pas beaucoup d'interactivité dans la langue, dit-il. Des langages tels que JavaScript doivent encore entrer et combler cette lacune, dit Peng. Bien qu'une analyse puisse être faite en R, la présentation des résultats peut être faite dans un langage différent tel que JavaScript, dit-il.

R n'est pas seulement pour les programmeurs avancés

Pourtant, Adams et Peng voient tous les deux R comme une langue accessible. «Je ne viens pas d'une formation en informatique et je n'ai jamais eu l'ambition de devenir programmeur. La connaissance des principes de base de la programmation aide certainement lors de l'ajout de R à votre boîte à outils, mais je ne dirais pas que c'est nécessaire pour commencer», dit Adams.

"Je ne dirais même pas que R est destiné aux programmeurs. Il convient mieux aux personnes qui ont des problèmes orientés données qu'ils essaient de résoudre, quelle que soit leur aptitude à la programmation", dit-il.