langage-julia

Le langage Julia va-t-il remplacer R et Python ?

Emmanuel Jakobowicz Mis à jour le : 28 janvier 2019 méthode Laissez un commentaire

Depuis quelques années, je suis avec beaucoup d'intérêt l'éclosion du langage Julia et de son grand objectif : réconcilier tous les langages et être une sorte de solution à tous les problèmes liés au calcul numérique.

Un peu d'histoire

Revenons en arrière de quelques années. En 2008, au MIT, quelques chercheurs se rassemblent et font un point sur les outils disponibles pour le calcul scientifique et statistique. Tous les acteurs du marché étaient déjà là mais la communauté était éclatée : des développeurs utilisateurs de C, voir de python, des statisticiens utilisateurs de R, et des utilisateurs de solutions commerciales ayant leur propre langage (SAS, Matlab...).

Le constat était alors simple, il fallait un langage prenant tous les avantages de chaque langage et rajoutant un aspect qui pointait son nez à ce moment : la parallélisation massive. Voici comment la langage Julia est né.

Principes de base du langage

Le langage Julia est donc :

  • rapide - un langage compilé qui utilise le compilateur JIT (Just In Time) de LLVM. Ceci lui permet de jouir de la compilation et de se comporter comme un interpréteur (comme R ou Python)
  • facile à manipuler - il peut être utiliser de manière interactive et en ligne de commande
  • dynamique - il possède des variables dynamiques.
  • simple à comprendre / apprendre - il vise à simplifier le code écrit, c'est un langage de haut niveau
  • souple - si la typage de C vous manque, Julia vous permet de typer vos structures, mais vous n'êtes jamais obligé
  • stable - la version 1.1 garantit une bonne stabilité du langage
  • libre - Julia est open source sous licence MIT

Essayez Julia directement dans votre navigateur avec JuliaBox

JuliaBox

A quoi ça ressemble ?

function f(x)
   x+2  
end

Mais encore ?

for i in 0:100
  println(i)
end

Pas d'intdentation obligatoire et pas de caractère de fin de ligne

Quelques autres propriétés de Julia :

  • Julia est conçu pour un traitement distribué, des fonctions exécutées en parallèle.
  • Les tableaux de Julia sont indicés à partir de 1 (comme R, pas comme Python)
  • Polymorphisme. Les mêmes fonctions peuvent supporter des types de données différents, et sont donc générées par le compilateur en multiples exemplaires
  • On peut utiliser des bibliothèques écrites en C directement

Et donc par rapport à Python et R ?

Beaucoup des points énoncés plus haut font de Julia un sacré challenger pour Python et R. La vrai question qui va se poser est la suivante :

Est-ce qu'un langage créé en 2009 peut s'imposer vu la rapidité de développement des autres langages et de leurs communautés d'utilisateurs ?

Dans un contexte de développement hyper-concurrentiel avec des langages comme Python, R, Scala, C++, Go... Est-ce que Julia va trouver sa place ?

Avec son aspect compilé à la volée, il gagne en performance par rapport à du Python ou du R classique. Par contre, le nombre de packages disponibles est encore bien en-dessous de ces deux concurrents.

Si la communauté data science s'en empare, Julia peut devenir une des références d'ici quelques années. Donc si vous aimez ce langage, à vous de jouer !

Faut-il apprendre Julia ?

C'est toujours la question que l'on se pose. Avant la sortie de la version 1.0, l'apprentissage de Julia apparaissait comme quelque chose d'assez exotique.

Depuis quelques mois, on voit de plus en plus de contenu en Julia. Le graphique des tendances de recherche sur Google et de citations sur StackOverflow montre une certaine tendance à la hausse mais ceci reste faible comparé à d'autres langages comme Python ou R.

Mon conseil serait de connaître les principes du langage et de l'approfondir si un projet rassemblant suffisamment de caractéristiques permettant d'utiliser toutes les forces de Julia se présente à vous.

Image

Comment apprendre Julia ?

Peu de contenu en français. Par contre, le site du langage Julia rassemble un grand nombre de contenus en anglais (tutorials, livres, MOOCs...) :

https://julialang.org/learning/

La documentation est toujours une source importante d'informations :

https://docs.julialang.org/en/v1/

Stackoverflow est toujours une bonne alternative lorsque tous les autres canaux n'ont pas apporté de réponse.

Par ailleurs, stat4decision propose des formations en français au langage Julia, n'hésitez pas à consulter cette page.

DES FORMATIONS QUI POURRAIENT VOUS INTÉRESSER

Partager cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.