1. Julia express
Introduction
La question n’est pas de savoir qui est Julia : ce serait trop facile.
Julia est un jeune langage de programmation créé au MIT en 2009, dont la syntaxe ressemble à
celle de notre cher Python. Il possède une banque déjà fournie de modules additionnels, même
si elle est moins impressionnante que celle de Python. Il existe deux avantages essentiels :
•beaucoup de commandes mathématiques sont présentes nativement ;
•sa rapidité d’exécution est proche de celle du C++.
Il faut noter que la compilation est transparente pour l’utilisateur puisqu’elle est réalisée à la
volée (« JIT », « Just In Time », du projet LLVM). Un programme en Julia s’exécute avec
autant de facilité qu’un script en Python.
Pour avoir une petite idée de la syntaxe et de la rapidité, voici en action un programme très
subtil (...) affichant la liste des diviseurs d’un entier donné :
Julia 0.3
function diviseurs(n)
for k in 1 : n
if n%k == 0
println(k)
end
end
end
@time diviseurs(944986841)
Résultat
elapsed time:
8.857808039 seconds
Python 3.4
from time import time
def diviseurs(n) :
for k in range(1,n+1) :
if n%k == 0 :
print(k)
a = time()
diviseurs(944986841)
b = time()
print("durée : ",b-a," secondes")
Résultat
durée : 77.8134343624115 secondes
Julia, un langage éco-responsable !
Notons par ailleurs que Julia supporte les caractères Unicode, ce qui, en français, signifie qu’on
peut inclure dans un programme des lettres grecques ou des symboles spéciaux faisant office de
variables, de fonctions, etc.
Références et liens
Le but de cette introduction n’est ni de réinventer la roue ni de se contenter de traduire les
ressources existantes en français. Voici donc quelques liens essentiels :
•site officiel : http://julialang.org ;
•documentation officielle : http://docs.julialang.org ;
•https://zestedesavoir.com/articles/141/a-la-decouverte-de-julia ;
•http://learnxinyminutes.com/docs/julia ;
•https://en.wikibooks.org/wiki/Introducing_Julia .
Pour tester Julia sans rien installer, il existe le notebook https://www.juliabox.org .
2