Peu après les débuts de Python, mais bien avant son utilisation pour en science des données, R a été développé spécifiquement pour les besoins de statisticiens. Avec les années, son écosystème s'est considérablement enrichi dans le domaine, au point où le langage est une référence en termes de fonctionnalités de haut niveau disponibles, tant pour l'analyse de données que la création de graphes.
Julia est un autre langage fort utilisé en science des données : moins populaire que les deux derniers, il prend néanmoins son envol. Ses premières versions ne datent que de 2012 (la 1.0 n'est toujours pas sortie). Ses objectifs sont proches de ceux de R (faciliter le calcul scientifique, notamment statistique), mais avec une excellente performance (là où tant Python et R pêchent).
Quels sont les avantages des uns et des autres ?
Avantages de Julia :
- la performance par défaut : bien qu'il soit possible d'accélérer des programmes R ou Python (en réécrivant certaines parties en un autre langage, par exemple), Julia propose une excellente performance sans artéfact ;
- une syntaxe plaisante pour les mathématiques, très proche des notations habituelles. Par exemple, un produit matriciel s'écrit avec * en Julia, mais avec %*% en R ou @ en Python (uniquement depuis la version 3.6) ;
- le parallélisme facile, tant sur les différents cœurs d'une machine (ce qui est syntaxiquement plus difficile en Python), R proposant le même genre de facilités, que sur plusieurs machines (Julia propose des abstractions, alors que R et Python se contentent de bibliothèques comme MPI).
Inconvénients de Julia :
- la jeunesse du langage, qui fait que sa syntaxe continue d'évoluer (probablement plus pour très longtemps) ;
- le peu de paquets disponibles par rapport à R ou Python, même s'il est possible assez facilement d'utiliser les bibliothèques pour d'autres langages ;
- une communauté en cours de création, un corollaire assez direct de la jeunesse du langage.
Points communs :
- la gestion automatique de la mémoire, il est inutile d'allouer et de libérer la mémoire explicitement (même si on peut le faire pour gagner en performance).
Et vous, quel langage préférez-vous pour la science des données ?
Article inspiré de Julia vs. Python: Julia language rises for data science.