On me pose souvent la question: pourquoi avoir commencé à apprendre Python plutôt que R?
A la base, je n’ai pas de réponse, si ce n’est le hasard, puisque j’ai commencé à apprendre Python grâce à Codecademy. Et il semblerait que ce soit difficile d’apprendre les deux en parallèle…
Mais les deux s’opposent-ils vraiment? Choisir, c’est renoncer, alors à quoi devons-nous renoncer exactement?
Note1: on se place ici dans une perspective Analyse de données.
Note2: Ce post est une synthèse des avis rédigés sur le sujet que j’ai pu glaner, je n’ai pas la prétention de donner mon avis, étant débutante, et n’ayant surtout pas encore mis les mains sous le capot de R!
Qu’est-ce que R?
R est un langage initialement créé par des statisticiens et conçu pour de l’analyse statistique. Il est donc naturellement orienté data analysis. Cela se concrétise notamment par des fonctions statistiques plus étendues.
Sa syntaxe est matricielle donc plus simple pour des problématiques de mathématiques faisant appel à des vecteurs ou des matrices.
R est OpenSource, ce qui signifie notamment qu’il bénéficie d’une plus large communauté (donc davantage d’échanges avec des spécialistes), et propose des packages déjà codés (il est donc rare que vous ne trouviez pas une réponse toute prête à votre problématique statistique).
Il semblerait que R dispose de fonctionnalité graphiques avancées, notamment avec la librairie ggplot2:
En synthèse, R est un langage plutôt de niche, comparé à Python, plus généraliste.
Qu’est-ce que Python?
Sous-entendu dans le cadre de notre analyse: Python avec les packages numpy et scipy installés qui sont des packages de fonctions additionnelles.
Python est davantage utilisé pour les programmes classiques. C’est un langage de programmation plus large, pour le scripting d’un site web par exemple. La communauté de statisticiens est ici assez faible.
C’est un langage réputé intelligible (les termes sont écrits en entier donc plus facilement compréhensibles, et la logique d’indentation de la syntaxe est assez lisible) et donc facile à apprendre. On notera la facilité de lecture d’un code python par des javaistes.
C’est un langage facilement scallable (entendez que l’on peut facilement passer sur de larges volumes de données), et semble être plus performant en termes de temps de traitement que R.
Enfin, pour être pragmatique, il y aurait davantage de job postings demandant des compétences confirmées en Python qu’en R!
Alors en bref?
Et pourquoi ne pas utiliser les deux? Il existe en effet une extension des fonctions de R que l’on peut installer dans Python via le module RPy module. Cela permettrait de réconcilier les deux clans?
Sources:
Article Revolution analytics.com
Forum de discussion
Article ReadWrite.com
Article Quora