Programmation avec Julia

 
  2 jours       860       Initiation    
Formation Julia
Objectifs de la formation
  • Manipuler une session de travail Julia
  • Comprendre ce qui distingue Julia des autres langages tels Python et R
  • S’initier à la programmation Julia
  • Se familiariser à l’écosystème des packages Julia prioritairement dans le cadre des sciences des données

Prérequis

Sans être obligatoire, des notions de base en programmation ainsi que des connaissances de base en techniques statistiques sont un plus. Idéalement, être déjà utilisateur soit de R soit de Python.


Public visé

Toute personne souhaitant acquérir les bases de Julia, notamment ceux évoluant dans le monde de la data : Data Scientists, Data Analysts, Data Engineers


Programme détaillé

Premiers pas en Julia

  • Présentation et installation de Julia
  • Prise en main avec présentation des divers environnements de travail :
    • console
    • package Visual Studio
    • notebooks Pluto.jl, jupyter (via IJulia.jl)
  • Découverte du gestionnaire unique des packages Julia

Présentation des concepts de programmation spécifiques à Julia

  • Découverte du paradigme tout en UN langage (la principale originalité par rapport à ses concurrents Python et R)
  • Performance grâce à la compilation JIT
  • Arborescence des nombreux types couplée au mécanisme de programmation “multiple dispatching” (concept de programmation plus général que la programmation OOP)
  • Langage de type LISP (comme le R et à la différence de python)
  • Interaction facile avec d’autres langages (C, C++, Python, R, …)

Session de type sciences des données

  • Manipulation de données
  • Initiation aux graphiques
  • Introduction des graphiques interactifs
  • Premières analyses statistiques

Divers compléments

  • Développer son package en Julia
  • Quelques comparaisons avec ses concurrents directs Python et R
  • Tour d’horizon des principaux domaines où Julia est utilisé

Pourquoi adopter Julia ?

 

Le langage Julia est un langage de programmation dynamique, hautement performant et conçu spécifiquement pour le calcul scientifique et numérique. Il présente plusieurs spécificités et avantages qui en font une option attrayante pour les scientifiques, les chercheurs et les développeurs :

  • Performances élevées : Julia est conçu pour offrir des performances élevées. Il utilise un compilateur JIT (Just-in-Time) qui génère du code machine optimisé au vol, ce qui lui permet d’égaler ou même de dépasser les performances de langages tels que C, C++ et Fortran. Les opérations mathématiques et les calculs numériques sont donc particulièrement rapides en Julia.

  • Syntaxe expressive et conviviale : Julia dispose d’une syntaxe expressive et conviviale qui ressemble à celle des langages de haut niveau couramment utilisés, tels que Python et MATLAB. Il est facile à apprendre et à lire, ce qui facilite la transition des utilisateurs vers Julia.

  • Typage dynamique avec inférence de type : Julia prend en charge le typage dynamique, ce qui signifie que vous n’avez pas besoin de spécifier les types de variables de manière explicite. Cependant, Julia dispose également d’un système de typage avancé qui lui permet d’inférer automatiquement les types de données lors de l’exécution, ce qui améliore les performances sans sacrifier la flexibilité du typage dynamique.

  • Parallélisme et calcul distribué : Julia est doté d’outils intégrés pour le parallélisme et le calcul distribué. Il permet d’exploiter efficacement les ressources des systèmes multicœurs et des clusters informatiques, ce qui en fait un choix puissant pour les calculs intensifs et les tâches de calcul parallèle.

  • Interopérabilité avec d’autres langages : Julia peut interagir de manière transparente avec d’autres langages de programmation, tels que Python, R, MATLAB et C. Cela permet aux utilisateurs d’utiliser des bibliothèques existantes dans ces langages et de profiter des fonctionnalités spécifiques tout en bénéficiant des performances élevées de Julia.

  • Vaste écosystème : Bien que Julia soit un langage relativement jeune, son écosystème s’est rapidement développé et propose désormais une gamme croissante de packages et de bibliothèques spécialisées dans divers domaines, notamment les statistiques, l’apprentissage automatique, l’optimisation, la visualisation, etc.

  • Licence open source : Julia est distribué sous une licence open source (MIT License), ce qui signifie qu’il est gratuit et que son code source est accessible à tous. Cela encourage la collaboration, la contribution de la communauté et favorise son adoption dans diverses industries et domaines.

Bien qu’il ne soit pas aussi utilisé (et médiatisé !) que Python, Julia est donc un langage de programmation à considérer pour le calcul scientifique et numérique ; il offre une combinaison unique de performances (meilleures que Python !), de flexibilité et de convivialité syntaxique.