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 !

Le langage de programmation Julia gagne de plus en plus en popularité au sein de la communauté scientifique
Depuis janvier 2018

Le , par Bill Fassinou

343PARTAGES

20  0 
Le langage de programmation Julia a été créé par des chercheurs du MIT en 2009 et publié pour la première fois au grand public en 2012. Ce mois-ci, d’après des chiffres publiés par le site Web du langage, ce dernier serait en train de connaître une croissance rapide au sein de la communauté scientifique. Selon certains internautes, Julia pourrait même se placer comme concurrent direct de certains langages comme Python ou C++ dans les prochaines années vu la manière dont elle séduit les développeurs. Julia est un langage de programmation de haut niveau, performant et dynamique pour le calcul scientifique, avec une syntaxe familière aux utilisateurs d'autres environnements de développement similaires (Matlab, R, Scilab, Python, etc.).

Il fournit un compilateur sophistiqué, un système de types dynamiques avec polymorphisme paramétré, une exécution parallèle distribuée et des appels directs de fonctions C, Fortran et Python. Sa bibliothèque, essentiellement écrite dans le langage Julia lui-même, intègre également des bibliothèques en C et Fortran pour l’algèbre linéaire, la génération des nombres aléatoires et le traitement de chaînes de caractères. Les programmes Julia sont organisés suivant la définition de fonctions et de leur surcharge autour de différentes combinaisons de types d'arguments. Le développement de Julia a débuté en 2009 avec Jeff Bezanson, Alan Edelman, Stefan Karpinski et Viral Shah.

Le langage s'est popularisé lorsque le compilateur est devenu open source en 2012. Il est actuellement disponible sous licence MIT. À la base, ses concepteurs voulaient un langage open source 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 homoiconic, 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.


En août 2018, la première version 1.0 jugée stable par l’équipe est publiée et le mois suivant, Julia occupait la 39e place dans le top 50 de l’index TIOBE. Après la sortie de cette version, Alan Edelman, Professeur au MIT CSAIL (Computer Science and Artificial Intelligence Lab), directeur de Julia Lab au MIT et également l’un des cofondateurs de Julia s’est adressé à la communauté en ces termes : « la sortie de Julia 1.0 indique que Julia est maintenant prête à changer le monde technique en combinant la productivité de haut niveau et la facilité d’utilisation de Python et R avec la vitesse fulgurante de C ++ ».

En décembre de la même année, le MIT indiquait que le projet Julia comptait plus de 3 millions de téléchargements et est utilisé dans plus de 1500 universités pour l’informatique scientifique et numérique. Cela a permis, courant décembre 2018 à trois des fondateurs de Julia d’être nommés lauréats du prix Wilkinson pour le logiciel numérique. Ce prix est décerné tous les quatre ans aux auteurs d’un logiciel numérique exceptionnel. Il a pour objectif de reconnaître les logiciels novateurs en calcul scientifique et d’encourager les chercheurs en début de carrière, a expliqué le MIT. Le prix sera présenté à la conférence sur la science et l'ingénierie numérique de la Société de mathématiques industrielles et appliquées (SIAM) de 2019 à Spokane dans l'État de Washington qui se tiendra du 25 février au 1er mars 2019.

À ce jour, le site de Julia informe la communauté que le projet réunit plus de 2400 paquets inscrits et plus de 3,2 millions de téléchargements. Ce dernier représenterait, selon le site Web, une croissance de 78 % au niveau des téléchargements. Sur GitHub, le nombre d’étoiles a également augmenté pour atteindre environ 73 600. Des chiffres qui témoignent de la montée en puissance du langage au sein de la communauté et surtout chez les scientifiques. Des avis des utilisateurs recueillis sur le site parlent de ce que Julia soit plus rapide que Python, et plus que cela, elle est beaucoup plus expressive.

Pour eux, le système des types, les macros et la répartition multiple permettent d’aborder des projets plus ambitieux. Le langage interagit également avec Python, ce qui permet de tirer parti des bibliothèques existantes dans Python et de s’intégrer à l’écosystème, disent-ils. Pour d’autres, Julia est un excellent outil. « Il est facile de noter le problème, mais il est difficile de le résoudre, surtout si notre modèle est à haute dimension. C'est pourquoi nous avons besoin de Julia. Comprendre comment résoudre ces problèmes nécessite un peu de créativité », ont-ils déclaré pour expliquer le choix porté sur Julia.

Sources : Julia Computing, MIT

Et vous ?

Qu'en pensez-vous ?
Connaissez-vous le langage ? Si oui, l’avez-vous essayé ? Partagez votre expérience avec nous.

Voir aussi

Sortie de Julia 1.0 et 0.7, le langage de programmation scientifique atteint sa première version stable après six ans de développement public

Après Redmonk, c'est au tour de l'Index TIOBE de mettre Python dans le top 3 des langages les plus populaires, Julia gagne également en notoriété

RedMonk janvier 2018 : Go semble déjà essoufflé et Swift rattrape Objective-C alors que Kotlin est en pleine ascension dans le classement

Index TIOBE : C sacré langage de programmation de l'année 2017, Python enregistre encore la plus forte progression annuelle sur PYPL

TypeScript entre dans le top 20 des langages les plus populaires, d'après le classement Redmonk de juin 2017

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

Avatar de Madmac
Membre expérimenté https://www.developpez.com
Le 19/01/2021 à 1:21
Le passage de Python vers Julia ne demande pas beaucoup d'effort.

Et pour quelqu'un qui débute, Julia un choix très largement supérieur à Python. Et comme plusieurs programmeurs utilisant Python voudrait une version typée, Je ne serais pas étonné que la clientèle traditionnelle passent à Julia.


Traitement en parallèle

Julia prend en charge trois catégories principales de fonctionnalités pour la programmation simultanée et parallèle:

"Tâches" asynchrones ou coroutines
Multi-threading
Informatique distribuée

Les tâches Julia permettent de suspendre et de reprendre les calculs pour les E / S, la gestion des événements, les processus producteur-consommateur et des modèles similaires. Les tâches peuvent se synchroniser via des opérations telles que wait et fetch, et communiquer via Channels.

La fonctionnalité multi-threading s'appuie sur les tâches en leur permettant de s'exécuter simultanément sur plus d'un thread ou cœur de processeur, partageant la mémoire.

Enfin, l'informatique distribuée exécute plusieurs processus avec des espaces mémoire séparés, potentiellement sur des machines différentes. Cette fonctionnalité est fournie par la bibliothèque standard Distributed ainsi que par des packages externes tels que MPI.jlet DistributedArrays.jl.
«Réseaux et flux
Programmation asynchrone »
Il me semble avoir lu quelque part, qu'Amazon ou Walmart a largement contribué financièrement. Et pour cette raison la version 1.5 est déjà utilisable pour des projets commerciaux. Pour le moment, les librairies ne sont aussi mature que JavaScript. Mais je crois que l'année prochaine, les différences ne seront plus significatives.

Comparaison de performance Julia Vs Python :https://benchmarksgame-team.pages.de...a-python3.html
5  0 
Avatar de danielhagnoul
Rédacteur https://www.developpez.com
Le 19/01/2021 à 11:08
Citation Envoyé par Uther Voir le message
La façon dont est rédigée l’accroche de l'article me fait penser à cette excellente planche de xkcd.


Le langage Julia a certainement beaucoup de qualités, mais ouvrir l'article en commençant par ce genre de chiffres, ça ne me donne pas vraiment envie.

De 13 millions à 24 millions, on est loin de 30000 !
6  1 
Avatar de danielhagnoul
Rédacteur https://www.developpez.com
Le 19/01/2021 à 11:12
Citation Envoyé par rawsrc Voir le message
Ben la phase d'apprentissage est commune à quasiment toutes les technos.

Après il faut aussi voir que ce n'est que la version 1, question performances, je pense que cela va s'améliorer. Ce langage était assez confidentiel jusqu'à maintenant mais je pense qu'il va progresser vite tant la syntaxe est bien pensée et les possibilités d'application vastes.
Pour ne rien gâcher, il s'interface nativement avec à peu près tout ce qui existe
La version 1.6 arrive et elle améliore nettement le temps de pré compilation.
5  0 
Avatar de abriotde
Membre chevronné https://www.developpez.com
Le 19/01/2021 à 14:14
Le passage de Python vers Julia ne demande pas beaucoup d'effort.
C'est assez vrai mais bon, il faut relativiser. Il y a quand même pas mal de spécificitées Python (pythonerie) et elles n'existent pas en Julia et vice versa. Mais néanmoins, je dirais que pour un développeur débutant, Python et Julia sont sensiblement aussi accessible l'un que l'autre et passer de Python à Julia est assez aisé dans la mesure ou l'ont reste dans le même type de langage : sans compilation, procédural de la ligné de C, avec un système de gestion de librairies avancé... Par contre en interne Julia est fortement typé (même si c'est beaucoup caché) contrairement a Python, c'est peut-être la plus grosse marche.

C'est un peu comme comparer PHP à Perl. En comparaison, Rust, introduit de la programmation fonctionnelle par rapport a C, il est plus proche d'un mixte entre divers inspirations très diverses (mais Rust se destine a des informaticien pointus comme C qui ont un bagage pour évoluer).
5  0 
Avatar de danielhagnoul
Rédacteur https://www.developpez.com
Le 19/01/2021 à 11:19
Citation Envoyé par SimonDecoline Voir le message
Si tu le dis...
Perso, ça doit faire 2 ans que c'est mon langage principal et certains concepts de base du langage m'ont demandé un certain effort d'apprentissage (immuabilité, multiple dispach, types polymorphes, stabilité de type, JIT...). Et apparemment je ne suis pas le seul, vus la longueur de la page "Performance Tips" de la doc (https://docs.julialang.org/en/v1/man...ormance-tips-1) et le nombre de messages dans les sections "First steps" et "Performance" du forum Julia (https://discourse.julialang.org/)...
Pour la performance, il est important de savoir qu'il ne faut jamais, quels que soient les circonstances et les besoins, créer une variable globale ! Le code doit toujours être dans une fonction ou dans un module.
4  0 
Avatar de rawsrc
Expert éminent sénior https://www.developpez.com
Le 26/01/2019 à 10:29
Purée, 2 heures de lecture de la doc et je suis soufflé.
C'est réellement un truc de fou. Chapeau bas aux p'tit gars du MIT
Ils sont arrivés à faire ce qu'ils voulaient :
Nous voulons un langage qui associe la rapidité de C et le dynamisme de Ruby. En fait, nous voulons un langage homoiconic, 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é »
Bon, ben yapuka. Personnellement, j'ai succombé rien qu'en lisant la doc, c'est dire.
Sur le net, il y a un consensus général sur le langage Julia. Vu les grosses boites qu'il s'y mettent, je parie ma chemise que cela va finir en raz-de-marée.
3  0 
Avatar de Mingolito
Membre extrêmement actif https://www.developpez.com
Le 19/01/2021 à 15:52
Ca n'a pas grand sens ton propos, si Julia n'avais pas un sens techniquement parlant on en parlerais même pas, et le fait de savoir si un nouveau langage provoque de l'intérêt ou fait un bide c'est important évidement.

Entre autre se pose la question du remplacement de Fortran pour la communauté scientifique, c'est partiellement fait vers Python mais peut être que Julia propose une meilleur alternative. Donc se poser la question de savoir si c'est techniquement une meilleur alternative dans certains domaines d'utilisation, puis de savoir si la validité du concept est validé par des téléchargements ou pas est une démarche totalement pertinente.
5  2 
Avatar de
https://www.developpez.com
Le 26/01/2019 à 21:17
Citation Envoyé par rawsrc Voir le message
Ben la phase d'apprentissage est commune à quasiment toutes les technos.
Si tu le dis...
Perso, ça doit faire 2 ans que c'est mon langage principal et certains concepts de base du langage m'ont demandé un certain effort d'apprentissage (immuabilité, multiple dispach, types polymorphes, stabilité de type, JIT...). Et apparemment je ne suis pas le seul, vus la longueur de la page "Performance Tips" de la doc (https://docs.julialang.org/en/v1/man...ormance-tips-1) et le nombre de messages dans les sections "First steps" et "Performance" du forum Julia (https://discourse.julialang.org/)...
2  0 
Avatar de Mingolito
Membre extrêmement actif https://www.developpez.com
Le 19/01/2021 à 17:33
Plus il y aura de téléchargements, et donc d'utilisateurs, plus il y aura de chances d'avoir des remontées sur ce qui ne va pas, donc d'améliorer l'offre, et aussi d'avoir de nouvelles API autour de Julia.
3  1 
Avatar de
https://www.developpez.com
Le 19/01/2021 à 23:08
Citation Envoyé par Madmac Voir le message
J'ai converti quelques vieux programmes en Pascal. Histoire d'apprivoiser la syntaxe.
Si je posais la question c'est parce qu'avec des petits projets "pour tester la syntaxe", on n'a souvent qu'un aperçu limité du langage.

Citation Envoyé par Madmac Voir le message
Le seul truc un peu déroutant est que c'est supposément un langage objet, mais c'est un type de langage objet assez particulier. Ce serait plus un langage procédural avancé.
Justement, ce n'est pas un langage objet (du moins, pas dans le sens de Java ou Python). C'est plutôt basé sur un système de types polymorphes avec du multiple-dispatch.

Citation Envoyé par Madmac Voir le message
Le langage va peut-être ajouter des trucs comme le support pour des macros.
Julia supporte les macros depuis longtemps : https://docs.julialang.org/en/v1/man...taprogramming/

Citation Envoyé par Madmac Voir le message
Et une fois, qu'il est fonctionnel et que tu as une idée assez claire des tailles à choisir pour les nombres et les tableaux, tu peux l'optimiser en introduisant les types.
Et c'est là que les choses sérieuses commencent. Clairement, l'objectif de julia, c'est d'avoir un langage aussi haut-niveau que python mais aussi rapide que c++. En pratique, on y arrive mais c'est loin d'être aussi simple que d'écrire quelques signatures de types ou d'enlever des variables globales. D'où mon étonnement sur la remarque que "passer vers Julia ne demande pas beaucoup d'effort".
2  0