article
done_all
workspace_premium
science
Actualité
Projet
Retour d'expérience
Parole d'expert
timer
11
minutes de lecture
SAnté
Retail & luxe
Énergie & environnement
Banque & assurance
Comité éditorial
-
5/7/24
Créé en 1991 par Guido Van Rossum, Python est un langage de programmation orienté objet de haut niveau. Son créateur a créé Python pour succéder à son ancien langage ABC en réutilisant toutes les fonctionnalités utiles et la syntaxe de celui-ci pour créer Python. Il est à ce jour l’un des langages de programmation les plus populaires au monde, et il se distingue par sa simplicité, mais aussi par la facilité avec laquelle il est possible de l’apprendre.
Le langage python est notamment exploité dans les domaines de la Data Science et du Machine Learning, recensant aujourd’hui 7 millions de développeurs utilisant ce langage dans le monde. C’est donc un langage très populaire et apprécié de la communauté des Data Scientists.
Cependant, il doit aujourd’hui faire face à un nouveau langage venu le concurrencer : Julia.
Fondé en 2009 par un groupe de 4 scientifiques (Jeff BEZANSON, Stefan KARPINSKI, Viral B. SHAH et Alan EDELMAN) et dévoilé au public en 2012 sous licence MIT, Julia est un challenger de Python dans le domaine scientifique.
Julia est un langage de programmation créé spécifiquement pour la science des données, l'algèbre linéaire complexe, l'exploration de données et l'apprentissage automatique. Julia est destiné à combler les lacunes de Python et d'autres langages et applications utilisés pour le calcul scientifique et le traitement des données. Les créateurs de ce langage voulaient offrir un outil plus fonctionnel dans le domaine de la Data Science :
Nous voulons un langage open source, avec une licence libérale. Nous voulons la vitesse de C avec le dynamisme de Ruby. Nous voulons un langage homoiconique, avec de vraies macros comme Lisp, mais avec une notation mathématique évidente et familière comme Matlab. Nous voulons quelque chose d'aussi utilisable pour la programmation générale que Python, aussi simple pour les statistiques que R, aussi naturel pour le traitement de chaînes que Perl, aussi puissant pour l'algèbre linéaire que Matlab, aussi efficace pour coller des programmes que le shell. Quelque chose de très simple à apprendre, mais qui satisfait les pirates les plus sérieux. Nous voulons qu'il soit interactif et nous voulons qu'il soit compilé.
https://julialang.org/blog/2012/02/why-we-created-julia/
Julia vise à remédier aux principaux points faibles de Python et des autres langages de programmation utilisés en Data Science :
Il utilise le framework LLVM pour la compilation ” just-in-time ” (JIT), ce qui lui permet d’offrir la même vitesse de runtime que le C. Python peut être rendu plus rapide grâce à des bibliothèques externes, des compilateurs JIT tiers (PyPy) et des optimisations avec des outils comme Cython, mais Julia est conçue pour être plus rapide dès le départ.
Le langage Julia a une syntaxe optimisée pour les mathématiques et les langages ou environnements scientifiques comme R, Octave, Matlab et Mathematica, ce qui facilite la compréhension des non-programmeurs. Elle est similaire à celle de Python – concise, mais aussi expressive et puissante.
Julia peut s’interfacer avec des bibliothèques externes comme celles de Python, C et Fortran. Il est également possible de s’interfacer avec du code Python via la bibliothèque PyCall, et même de partager des données entre Python et Julia.
Flux est une bibliothèque d’apprentissage automatique pour Julia qui contient de nombreux modèles existants pour des cas d’utilisation courants. Une bibliothèque écrite en Julia afin que la modification soit simple, en utilisant la compilation JIT de Julia pour optimiser les projets.
Les programmes Julia peuvent générer d’autres programmes Julia, et même modifier leur propre code, d’une manière qui rappelle les langages comme Lisp.
Tout comme Python, Julia permet aux utilisateurs de ne pas se soucier d’allouer et de libérer de la mémoire. Il fournit une certaine mesure de contrôle manuel. L’idée est que si un utilisateur passe à Julia, il ne perde pas l’une des commodités courantes de Python.
Julia a introduit une suite de débogage, qui exécute le code dans un REPL (boucle de lecture-évaluation-impression) local et permet de parcourir les résultats, d’inspecter les variables et d’ajouter des points d’arrêt dans le code. En effet, Julia inclut une REPL ou une ligne de commande interactive, similaire à ce que propose Python. Les scripts et commandes ponctuels rapides peuvent être saisis directement.
Malgré les avantages indéniables de Julia, notamment sa rapidité dans la programmation en Data Science et en sachant que Python n’a pas été créé pour la science des données au départ, il a rapidement évolué et offre également de nombreux avantages pour les Data Scientists :
Les programmes Python sont plus lents que les programmes Julia, la rapidité étant une de ces forces. Cependant, le runtime de Python est plus léger que celui de Julia ainsi il faut généralement moins de temps aux programmes Python pour démarrer et fournir les premiers résultats. De plus, alors que la compilation JIT accélère le temps d’exécution des programmes Julia, elle se fait au prix d’un démarrage plus lent. Bien que les développeurs travaillent sur ce problème, Python démarre toujours plus rapidement.
Une langue n’est rien sans une communauté nombreuse, dévouée et active autour d’elle. Julia a une communauté enthousiaste qui ne cesse de grandir, mais elle est encore loin de la communauté de Python qui représente des millions d’utilisateurs. Python est un langage mature qui existe depuis 30 ans comparé à la jeunesse de Julia.
Python profite d’une plus large variété de packages tiers pour le Machine Learning, tandis que très peu de logiciels tiers sont développés autour de Julia à l’heure actuelle. Des bibliothèques comme Flux et Knet rendent Julia utile pour l’apprentissage automatique et l’apprentissage en profondeur, mais la grande majorité de ce travail est toujours effectuée avec les packages TensorFlow ou PyTorch.
Python s’améliore au fil du temps grâce au travail réalisé sur son interpréteur, notamment en ce qui concerne le traitement parallèle et multi-core. Ceci lui a permis de gagner en vitesse.
Dans de nombreux langages, y compris C et Python, les premiers éléments des tableaux sont accessibles avec un zéro. Par exemple, en Python, le premier caractère d’une chaîne est une chaîne [0]. Lorsque vous utilisez Julia, vous devez gérer l’indexation 1. Ce n’est pas une décision arbitraire, de nombreuses autres applications mathématiques et scientifiques, comme Mathematica, utilisent l’indexation 1, et Julia est destiné à plaire à ce public. Heureusement, il existe une fonctionnalité expérimentale qui permet la prise en charge de l’indexation nulle, mais l’indexation 1 par défaut peut empêcher l’adoption par un public plus généraliste avec des habitudes de programmation enracinées.
Julia est un langage créé spécifiquement pour la Data Science et le Machine Learning et ceci lui permet de surpasser Python en termes de vitesse et de confort d’utilisation pour ces disciplines.
Néanmoins Python reste un excellent choix avec une vaste communauté d’utilisateurs contribuant à son amélioration constante.
Afin d’y voir plus clair, un résumé des différentes fonctionnalités parmi les langages de programmation est donné ci-dessous :
Chacun présente donc des avantages et des inconvénients… pour choisir entre les deux il faut donc bien analyser les besoins ainsi que les préférences en fonction des points forts et des points faibles de chacun des langages.
A présent nous sommes convaincus que vous saurez définir quel langage de programmation est le plus avantageux pour votre projet en Data Science. Quelle que soit la langue choisie, de nombreux facteurs doivent être pris en compte car chaque langue a ses atouts et ses inconvénients comme explicités ci-dessus. Julia surpasse Python en termes de vitesse, tout en étant pratique et facile à utiliser. Néanmoins, Python reste un excellent langage de programmation avec certains avantages. Il a une communauté florissante et offre une vitesse de démarrage plus rapide. Julia doit encore monter en puissance et gagner en maturité (choix de bibliothèques, communauté, etc) pour concurrencer Python. Dans tous les cas, Python restera un acteur majeur et une compétence recherchée quelle que soit la montée en puissance de Julia.