IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Adoption du langage de programmation Julia : Logan Kilpatrick, défenseur de la communauté des développeurs Julia, livre son analyse,
Dans un billet de blog

Le , par Bruno

23PARTAGES

13  0 
Adoption du langage de programmation Julia : Logan Kilpatrick, défenseur de la communauté des développeurs Julia, livre son analyse,
dans un billet de blog

Dans un billet de blog publié le 12 décembre, Logan Kilpatrick, défenseur de la communauté des développeurs principaux de Julia, partage son avis sur le langage Julia. « Un tout nouvel écosystème d'entreprises arrive sur le devant de la scène et elles ont toutes une chose en commun : elles utilisent le langage de programmation Julia. Les entreprises qui opèrent à la limite du possible s'appuient sur l'efficacité de Julia en matière de calcul, sa facilité d'utilisation et sa place dans l'écosystème du calcul scientifique pour résoudre certains des problèmes les plus difficiles au monde », écrit-il.

Julia est un langage de programmation open source et un écosystème pour le calcul scientifique de haute performance. Conçu par des chercheurs du MIT en 2009 et dévoilé pour la première fois au grand public en 2012, il est doté d’une syntaxe familière aux utilisateurs d'autres environnements de développement similaires. Julia connaît une croissance fulgurante depuis sa sortie et certains vont même jusqu’à dire qu’il s’agit du langage idéal pour le calcul scientifique, la science des données et les projets de recherche. Le langage s'est popularisé lorsque le projet est devenu open source en 2012. Il est actuellement disponible sous licence MIT.


À la base, ses concepteurs voulaient un langage avec une licence libre et renfermant de nombreux avantages surtout pour la communauté scientifique. « Nous voulons un langage open source, avec une licence libre. Nous voulons un langage qui associe la rapidité de C et le dynamisme de Ruby. En fait, nous voulons un langage homoïconique, avec de vraies macros comme Lisp et 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 facile pour les statistiques que R, aussi naturel pour la gestion de chaîne de caractères que Perl, aussi puissant pour l’algèbre linéaire que Matlab et aussi bien pour lier des programmes que le shell. Nous voulons qu’il soit à la fois interactif et compilé », avaient-ils déclaré en 2012.

Les raisons de l’adoption accélérée du langage Julia

Langage de haut niveau

Julia est un langage de haut niveau, ce qui signifie qu'il peut être utilisé pour développer rapidement des prototypes et résoudre des problèmes sans avoir besoin de trop de code. De l’avis de Kilpatrick, cela rend Julia extrêmement utile pour les startups, car elles peuvent développer rapidement leurs produits ou services sans avoir à se soucier des exigences de codage complexes. De plus, comme Julia est open source, il existe de nombreux paquets qui peuvent être utilisé pour accélérer encore le développement.

Compatibilité avec d'autres langages

L'un des principaux avantages de Julia est sa compatibilité avec d'autres langages tels que Python, R, C++, MATLAB et Java. Cela permet d'intégrer facilement ces langages dans le processus de développement sans avoir à écrire du code supplémentaire ou à investir dans des ressources additionnelles. Par exemple, si le programmeur a besoin d'utiliser Python pour certaines tâches mais souhaite avoir la rapidité du C++ pour d'autres, il est possible de facilement les combiner dans un projet avec Julia. Des entreprises comme Julius Technologies s'efforcent de combler le fossé entre plusieurs langages avec Graph Computing et Julia.


Plateformes flexibles

Julia offre également une certaine flexibilité en ce qui concerne ses plateformes ; elle prend en charge Windows, Mac OS X et Linux. Cela signifie que, quel que soit le type d'appareil auquel vos utilisateurs ont accès, ils pourront faire l'expérience de votre application ou de votre site Web sans aucun problème ou retard dû à une incompatibilité entre les plateformes. Il y a également un nombre croissant d'intégrations web en cours de réalisation grâce à l'équipe de Pluto.jl, ce qui devrait élargir considérablement le public qui peut utiliser Julia.

La vitesse et l'efficacité de Julia

Une des caractéristiques les plus puissantes de Julia est son extensibilité : on peut ajouter de nouvelles méthodes à des fonctions précédemment définies, et utiliser des méthodes précédemment définies sur de nouveaux types. Parfois, ces nouvelles entités obligent Julia à recompiler le code pour tenir compte des changements dans la version. Cela se produit en deux étapes : d'abord, le code « obsolète » est invalidé, le marquant comme impropre à l'utilisation ; ensuite, si nécessaire, le code est à nouveau compilé à partir de zéro en tenant compte des nouvelles méthodes et des nouveaux types.

Les premières versions de Julia étaient quelque peu conservatrices, et invalidaient l'ancien code dans certaines circonstances où il n'y avait pas de changement réel dans la version. De plus, il y avait de nombreux endroits où Julia et ses bibliothèques standards étaient écrites d'une manière qui ne permettait pas l'inférence de type de Julia. Étant donné que le compilateur devait parfois invalider du code juste parce qu'une nouvelle méthode pouvait s'appliquer, toute incertitude sur les types amplifie le risque et la fréquence d'invalidation.

Dans ces anciennes versions de Julia, la combinaison de ces effets rendait l'invalidation très répandue : le simple chargement de certains paquets entraînait l'invalidation de 10 % du code précompilé de Julia. Le délai de recompilation pouvait parfois rendre les sessions interactives plus lentes.

Julia et ses bibliothèques standards ont fait l’objet d’une refonte complète pour aider l'inférence de type à arriver plus souvent à une réponse concrète. Le résultat est un langage Julia plus léger, plus rapide et considérablement plus réactif et agile dans les sessions interactives, surtout grâce à une invalidation de méthodes plus précise.

Pour Kilpatrick, l’une des principales raisons pour lesquelles les startups se tournent vers Julia est qu'il offre une vitesse et une efficacité inégalées par rapport à d'autres langages. Cela le rend idéal pour les entreprises qui ont besoin de traiter de grandes quantités de données rapidement et avec précision. « Julia peut faire plus en moins de temps que de nombreux autres langages de programmation, ce qui en fait un excellent choix pour les entreprises qui ont besoin d'un délai d'exécution rapide pour leurs projets axés sur les données », soutient Kilpatrick.

Accélération du chargement

Bien que la stratégie de Julia ait toujours été de donner la priorité à la fiabilité et à la reproductibilité sur toutes les autres préoccupations, pour les concepteurs, dans le passé, cela a eu un coût. La solution aux problèmes de fiabilité et de reproductibilité était d'isoler plus complètement les binaires installés et de les compiler en utilisant le framework BinaryBuilder.jl. Les bibliothèques construites à partir de BinaryBuilder.jl sont le plus souvent utilisées par le biais de paquets dits JLL qui fournissent une API normalisée que les paquets Julia peuvent utiliser pour accéder aux binaires fournis.

Cette facilité d'utilisation et la fiabilité de l'installation ont entraîné une augmentation considérable des temps de chargement par rapport au vieux temps où les paquets Julia devaient aveuglément charger toutes les bibliothèques qui se trouvaient sur le chemin de recherche des bibliothèques. Pour illustrer le problème, dans Julia 1.4, le chargement de la pile GTK+3 nécessitait 7 secondes alors qu'il prenait environ 500 ms sur la même machine dans les versions précédentes.

Après de nombreux mois de travail acharné et de recherches minutieuses, les concepteurs de Julia ont annoncé avec beaucoup de bonheur que la même pile de bibliothèques prend moins de 200 ms à charger en utilisant Julia v1.6 sur la même machine. Le travail consenti pour réduire la taille des paquets JLL a abouti à la création d'un nouveau paquet, JLLWrappers.jl. Ce paquet fournit des macros qui génèrent automatiquement les liaisons nécessaires à un paquet...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !