Programmation : Julia peut-il devenir un nouveau Python ?

DéveloppeursProjets

Disponible depuis 2012, Julia se développe à un rythme soutenu et a obtenu en août 2018 sa version 1.0. Son objectif : créer un langage capable de convenir autant pour des tâches de programmation générales (développeurs), de statistiques (data scientists) ou encore d’algèbre linéaire (scientifiques).

 Avec de telles promesses, que manque-t-il à Julia pour atteindre les acteurs actuels ?

Aujourd’hui, les langages Python et R dominent amplement dans le domaine du Machine Learning (ML). Python reste le langage de programmation qui connaît la plus forte croissance en termes de popularité auprès des développeurs, principalement en raison de la puissance de ses frameworks et de ses bibliothèques.

De l’autre côté, SAS est, pour le moment, le leader incontesté du marché dans le domaine de l’analyse, notamment dans le secteur bancaire et financier. Il offre un choix important de fonctions statistiques avec une excellente interface utilisateur permettant un apprentissage rapide et un support technique exceptionnel. Le choix des entreprises, notamment dans les domaines où il n’y a pas de place pour l’expérimentation, se portera irrémédiablement sur SAS et sa licence offrant un certain nombre de garanties.

Mais l’avènement du Big Data a entrainé un chamboulement des normes sur le marché.

Cette révolution s’accompagne notamment d’une prise de conscience générale de la quantité de données à disposition des entreprises, et surtout de leur potentiel comme accélérateur d’opportunités grâce à leur traitement. Car au-delà d’une relative avancée technologique dans le domaine du stockage, cette ère du Big Data fait évoluer le domaine de la data d’une fonction support à une véritable ressource stratégique.

Mais est-on réellement prêt à investir dans un logiciel coûteux avant de connaître les véritables retombées de l’analyse des données ? Et c’est sûrement ici que l’Open Source a pu tirer son épingle du jeu en proposant un accès direct à tous les outils nécessaires.

De nombreuses librairies fleurissent également au fil des attentes. Python a aussi réussi le défi de rapprocher les développeurs et les data scientists sous un même langage permettant ainsi une industrialisation simplifiée. C’est sûrement ces caractéristiques qui lui ont permis de s’imposer aujourd’hui comme l’un des langages le plus utilisé en data science.

Essayant de se faire une place, le langage de programmation Julia est conçu sur un postulat simple mais efficace : prendre les caractéristiques qui font la renommée des langages les plus utilisés comme la rapidité de C, la facilité d’utilisation et d’apprentissage de Python ou SAS, les prouesses mathématiques de MatLab et les avantages statistiques de R.

Développé et incubé au laboratoire d’informatique et d’intelligence artificielle du MIT, Julia est un langage gratuit et open source avec plus de 700 contributeurs actifs, 1 900 packages enregistrés ainsi que 2 millions de téléchargements.

Venant récemment d’obtenir une version 1.1 (janvier 2019), preuve que le langage n’est désormais plus en développement mais possède une version stable, ceux qui se trouvent derrière Julia ont maintenant l’ambition de devenir le langage de choix notamment dans le domaine du ML.

Pour le moment, Julia est encore un langage de programmation nouveau et jeune. Il ne faut pas s’attendre, et à juste titre, qu’il surpasse Python sur tous les aspects.

Malgré tout, ce langage de programmation arrive à se distinguer sur certains points notamment sur les notions perfectibles de Python :

C’est un langage performant, assurant une vitesse d’exécution rapide. C’est d’ailleurs le domaine où Julia est le plus reconnu. Ainsi le langage apparait plus rapide que Python parce qu’il est spécialement conçu pour rapidement implémenter les mathématiques fondamentales utilisées dans la data science, comme les expressions matricielles et l’algèbre linéaire. Finalement pour des programmations équivalentes en termes de complexité, Julia prend moins de temps avec une vitesse d’exécution du même ordre que du C.

Qui pose ses fondations sur une syntaxe simplifiant l’apprentissage. La syntaxe de Julia est semblable à celle de Python : concise, facile d’apprentissage car intuitive et puissante. Le saviez-vous, c’est d’ailleurs grâce à sa clarté et sa source d’opportunité que Python dépasse le français comme langage le plus populaire enseigné dans les écoles primaires d’Angleterre . Néanmoins, Julia possède un avantage supplémentaire avec sa syntaxe pour les opérations mathématiques plus aisée puisqu’elle est très proche des notations habituelles dans le domaine scientifique. Les scientifiques ou universitaires, non-programmateurs, constituent ainsi un public cible pour Julia.

Mais nécessite de s’enrichir pour prospérer. Python a su se forger au fil des années une forte communauté en ligne. L’utilisation du langage en est amélioré et facilité car grâce à la réactivité de la communauté, si vous êtes coincés sur un problème ou vous voudriez avoir des renseignements, il est facile d’obtenir de l’aide. Python est populaire et plus utilisé, tout est documenté minutieusement et le nombre de professionnels actifs sur le langage est, en conséquence, important. Les contributeurs actifs permettent aussi la création et la prolifération de nombreuses librairies : tous les outils dont vous voudriez vous servir sont présents.

Pour combler sa faiblesse de contenu, Julia propose d’utiliser des bibliothèques externes écrites en C ou en Fortran, comme le fait également le langage de programmation Rust. Il est aussi possible d’utiliser du code Python via le package Pycall (package permettant d’appeler des fonctions Python à partir du langage Julia) et même partager des données entre Python et Julia. 

Il est intéressant d’offrir la possibilité d’utiliser les librairies disponibles chez les autres langages afin de permettre une transition et une utilisation parallèle des autres langages avec Julia, mais pour grandir et s’imposer, il sera nécessaire de développer ses propres librairies.

Ainsi, Julia commence à essayer de rattraper son retard. Récemment, vient d’apparaître Flux, librairie de logiciels d’apprentissage automatique conçue pour faciliter l’écriture de code ML, simplifier le processus d’apprentissage des modèles et offrir certains avantages en termes de performances.

La stratégie serait-elle de rapidement proposer des outils pour s’interposer dans la bataille R/Python sur la programmation dans le domaine de la data science ?

Même si Python est le langage qui a gagné le plus en popularité en 2018 (+3.62% de part de marché) et entre dans le top 3 des langages de programmation selon l’indice de popularité Tiobe, l’intérêt pour Julia grossit perpétuellement. S’il ne paraît pas encore opportun de se lancer dans le développement d’un projet à l’aide de Julia, son évolution très rapide est à suivre avec attention. Alors pourquoi ne pas commencer dès aujourd’hui à se familiariser avec ce langage ? Plusieurs plateformes de MOOC proposent déjà de suivre une formation sur son apprentissage :

– Coursera https://fr.coursera.org/learn/julia-programming
– EDX https://www.edx.org/course/optimization-methods-business-analytics-mitx-15-053x
– Le site Julia référencie également différents tutos et livres autour de son apprentissage https://julialang.org/learning


Auteur
En savoir plus 
Consultante
Groupe Square
Maud Jambut est consultante pour le cabinet de conseil Groupe Square.
En savoir plus 

Livres blancs A la Une