Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Julia Discussion :

Julia, une introduction, mais vite


Sujet :

Julia

  1. #1
    Responsable Qt & Livres

    Julia, une introduction, mais vite
    Julia est un langage de programmation récent orienté (très haute) performance : il s'agit de l'un des très rares langages à être utilisé sur un superordinateur ! Par exemple, il a été utilisé pour le projet Celeste, qui consiste en l'analyse d'images astronomiques : les chercheurs ont pu cataloguer 188 millions d'objets astronomiques, dénichés dans pas moi de 178 téraoctets de données, en moins de quinze minutes — le fruit de trois années de recherche.

    Julia a ainsi été préféré au C, au C++ ou au Fortran, les trois langages de prédilection pour ce genre d'application. En effet, ces langages ont l'avantage de limiter leur impact sur la performance des applications : on a accès très directement à la machine, sans mécanisme lourd comme une machine virtuelle. De plus, les compilateurs optimisent très fortement le code généré, pour qu'il tourne plus vite. Julia dispose des mêmes avantages (donc en performance, point crucial pour cette application), tout en étant plus facile à utiliser : il s'agit d'un langage bien plus dynamique (comme Python ou Ruby), avec des notations mathématiques habituelles (il est similaire à MATLAB, Octave ou encore Fortran).

    Lire l'introduction
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  2. #2
    Expert confirmé
    Bonjour,

    Je cite un extrait du tutoriel :

    Les boucles for ne fonctionnent pas comme dans la majorité des langages : Julia préfère itérer sur un conteneur qu'incrémenter manuellement une variable ; il n'existe pas de forme avec trois arguments (initialisation, condition, mise à jour, comme en C). Ici, la boucle itère sur une plage de nombres, entre 1 et 10, avec un incrément d'une unité. On pourrait aussi itérer sur les éléments d'un tableau :

    Code Julia :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    for i in [1, 3, 4, 9, 10]
        println(i)
    end
    En fait, cette fonctionnalité (le "foreach") existe dans la majorité des langages utilisés dans l'industrie. Parmi les langages les plus populaires dans l'industrie, je crois qu'il n'y a qu'en langage C où la manière idiomatique de parcourir une collection est d'incrémenter manuellement une variable, comme un indice de tableau. Dans les autres langages, pour parcourir une collection, la manière normale est d'utiliser une forme de "foreach".

    Exemples :

    Code Python :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    for i in (1, 3, 4, 9, 10):
    	print(i)


    Code JavaScript :Sélectionner tout -Visualiser dans une fenêtre à part
    [1, 3, 4, 9, 10].forEach(i => console.log(i));


    Code C++ :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <iostream>
    #include <vector>
     
    int main() {
        for (auto i : std::vector<int>{1, 3, 4, 9, 10}) {
            std::cout << i << '\n';
        }
        return 0;
    }


    Code Java :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class Program {
         public static void main(String []args){
            int[] array = {1, 3, 4, 9, 10};
            for (int i : array) { 
                System.out.println(i);
            }
         }
    }


    Code C# :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    using System;
    using System.Collections.Generic;
     
    public class Program {
    	public static void Main() {
    		foreach (int element in new List<int>{1, 3, 4, 9, 10}) {
    			Console.WriteLine(element);
    		}
    	}
    }


    Code PHP :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    foreach (array(1, 3, 4, 9, 10) as &$i) {
        echo "$i\n";
    }