GDL, un clone libre d'IDL

Posté par  . Modéré par Jaimé Ragnagna.
Étiquettes :
0
19
oct.
2005
Technologie
GDL (GNU Data Language) est un compilateur incrémental compatible avec IDL™ (Interactive Data Language). IDL est un langage vectoriel de traitement de données et de visualisation très répandu dans l'industrie et dans la recherche mais jusqu'alors sans équivalent libre et dont les licences sont très onéreuses.

Le projet GDL fondé en 2003 par Marc Schellens a pour but de fournir un remplacement libre (licence GPL) à IDL en fournissant le compilateur mais aussi l'ensemble des fonctions standards. À ce jour GDL a une syntaxe complètement compatible avec la version 6 d'IDL (objets, pointeurs, structures, tableaux, variables système, blocs common, variables assoc, tous les opérateurs, tous les types de données, etc.). Plus de 250 fonctions et procédures standards ont déjà été implémentées, allant de la transformée de Radon aux fonctions de visualisation graphique 2D et 3D en passant par les polynômes de Laguerre ou encore la gestion des fichiers NetCDF par exemple.

GDL ne se borne cependant pas à cloner IDL mais innove et étend celui-ci. En effet, GDL possède une interface python (des routines écrites en python peuvent être appelées depuis GDL) et GDL peut être construit en tant que module python (des routines GDL peuvent être appelées depuis python). GDL s'appuie aussi sur des bibliothèques libres éprouvées et performantes (FFTW, GNU Scientific Library, Image Magick, plplot entre autres).

GDL est une occasion d'inciter certains chercheurs et industriels à s'intéresser au libre. N'hésitez pas à contribuer ainsi qu'à faire connaître GDL aux utilisateurs d'IDL ! La version 0.8.11 d'GDL vient de sortir le 18 octobre, apportant son lots de nouveautés et d'optimisations. Le projet est cependant loin d'être achevé et il cherche des contributeurs dans tous les domaines :
* documentation,
* publicité,
* fabrication de paquets binaires pour votre distribution/OS favori,
* optimisations,
* rapports d'erreurs et écriture de routines de test en GDL,
* portage sur d'autres plate-formes (GDL fonctionne déjà sous GNU/Linux et MacOS X avec gcc),
* finition du système de sortie graphique,
* écriture de fonctions et procédures de la bibliothèque standard,
* implémentation de l'interface graphique.

Les contributions peuvent se faire en C/C++, en GDL ou encore en python. Même les plus petites sont vivement appréciées. L'équipe compte actuellement une petite dizaine de développeurs plus ou moins actifs et les débutants sont amplement aidés et guidés.

Pour les gourmand(e)s, voici un très simple aperçu de GDL. Les quelques lignes suivantes tracent une fonction sinus et affichent la position des maxima :

GDL> a=sin(findgen(200)/10)
GDL> plot,a,YRANGE=[-1.1,1.1]
GDL> w=where( a ge shift(a,1) and a ge shift(a,-1))
GDL> plots,w,a[w],PSYM=2,SYMSIZE=2

À très bientôt sur le projet GDL !

Aller plus loin

  • # Clone ?

    Posté par  (site web personnel) . Évalué à 6.

    Je travaille dans un endroit qui utilise IDL de facon importante et cela me fait poser la question : dans quelle mesure GDL clone t'il les commandes et capacites d'IDL ? Les etudiants l'utilisant ici sont relativement exigeants avec le code qu'ils developpent et IDL 6.x apporte egalement son lot de nouveautes notemment au niveau interfaces.

    Je ne dis pas qu'IDL est mieux, mais que si je veux leur proposer une alternative libre, j'ai interet a avoir de bon arguments. Donc, il y a t'il quelqu'un qui s'est penche dessus ?

    Steph
    • [^] # Re: Clone ?

      Posté par  (site web personnel) . Évalué à 1.

      Est ce que le fait qu'il peuvent développer chez eux avec GDL sans débourser 90$ pour une licence IDL étudiante n'est pas un argument suffisant ? (les licences non-etudiant sont au minimum a 400$ chez RSI).
      • [^] # Re: Clone ?

        Posté par  . Évalué à 2.

        heu, le prix de la licence c'est plutot 4500¤, plus 500¤ par ans pour les mise a jours :(
    • [^] # Re: Clone ?

      Posté par  . Évalué à 5.

      GDL est encore largement en développement. Tout dépend de ce que tu veux faire avec. Si c'est du calcul ou du traitement de données à base de script c'est déjà très utilisable. Si une fonction manque tu peux en faire la demande sur la page sourceforge. Dans la plupart des cas elles sont implémentées assez rapidement par les développeurs. En revanche si tu as besoin de construire des interfaces graphiques avec des boutons et tout, là effectivement GDL n'est pas encore envisageable. D'ailleurs si quelqu'un veut développer cette partie (à coup de pyQt/pygtk par exemple ?), ce serait vraiment excellent et je pourrais enfin présenter GDL à un certain nombre de personnes qui utilisent massivement les interfaces graphiques IDL. Non, je ne suis pas volontaire pour le faire, je n'ai pas le niveau. :)
      Donc pour résumer, il faut essayer pour voir si ça remplit tes besoins ou pas. Si jamais il te manque des choses et que tu as les capacités l'envie et le temps d'améliorer GDL tu seras plus que bienvenu. :)
      • [^] # Commentaire supprimé

        Posté par  . Évalué à 4.

        Ce commentaire a été supprimé par l’équipe de modération.

        • [^] # Re: Clone ?

          Posté par  . Évalué à 4.

          Tu oublies qu'il existe un énorme existant au niveau des scripts IDL. Pour prendre un exemple que je connais bien, en astro les données sont traitées presque uniquement soit avec IDL soit avec MIDAS soit avec IRAF. Ce sont tous de vieux logiciels mais tu peux être sûr que dans 10 ans on les utilisera encore. Pourquoi ? Parce qu'il y a une base de scripts très riche (voir l'astrolib de la NASA par exemple : http://idlastro.gsfc.nasa.gov/homepage.html ), que tout le monde utilise (et donc connait) ça et que ce sont des solutions matures dont on sait qu'elles marchent. De plus les pipelines de réduction fournis par les instituts sont presque toujours écrits dans un de ces langages. Le fait de pouvoir faire tourner les scripts IDL sans modification est donc très important. Les chercheurs n'ont vraiment pas de temps à passer à apprendre un nouveau langage et réécrire et déboguer tous leurs scripts qu'ils ont accumulé depuis 20 ans pour certains.
          Quant au retard, IDL n'avance pas si vite que ça, et les chercheurs se précipitent rarement sur les dernières nouveautés qui viennent de sortir. Donc même si GDL (une fois fini) a un retard de quelques mois sur les toutes dernières fonctions, c'est loin d'être un drame. :)
          • [^] # Commentaire supprimé

            Posté par  . Évalué à 4.

            Ce commentaire a été supprimé par l’équipe de modération.

            • [^] # Re: Clone ?

              Posté par  . Évalué à 1.

              J'ai essayé d'installer pyraf il y a quelque temps histoire de ne pas avoir à subir l'infâme CL, je n'ai jamais réussi (d'ailleurs beaucoup de logiciels d'astro sont atroces à installer). Sinon le développement d'IRAF est lent depuis de nombreuses années, c'est pas nouveau ça. Mais l'évolution continue (voir la sortie de la version bêta d'ECL par exemple). IRAF est encore là pour longtemps, ça ne fait aucun doute. Je vois mal les personnes que je connais passer à autre chose. D'ailleurs en l'état actuel des choses je ne vois pas ce qui pourrait remplacer IRAF (et ses dérivés genre pyraf).

              Concernant le remplacement d'IDL par python, il y a justement un thésard au labo qui est en train de monter une chaîne de traitement. Et je peux te dire qu'il s'arrache les cheveux avec python car il lui manque quelque chose d'aussi complet que l'astrolib, m'a-t-il dit.

              J'ai dit : « les pipelines de réduction fournis par les instituts sont presque toujours écrits dans un de ces langages », je n'ai pas dit que c'était principalement écrit en IDL. Ne me fais pas dire ce que je n'ai pas dit. Mais oui, il y en a bien qui ont été écrit en IDL. Personnellement je n'ai encore jamais utilisé de pipeline écrite en python, mais ça va venir, effectivement. J'ai d'ailleurs entendu des plaintes à ce propos.

              Apres le coup les chercheurs n'ont pas le temps d'apprendre un nouveau langage je suis d'accord mais bon pourquoi font ils toujours la mise a jour du dernier IDL?

              Par exemple pour avoir le support linux 64 bits nécessaire pour traiter des très gros volumes de données. (c'est la raison de la dernière mise à jour chez nous)

              J'ai tente d'installer GDL c'est plein de dependances, ca me trouve pas mon python et donc matplotlib et faire des graphes avec plplot ca laisser reveur tout de meme...

              Tu as bien installé le paquet de développement de python ? Si tu n'as pas besoin des fichiers netcdf/hdf ajoute --without-netcdf --without-hdf --without-hdf5 sur la ligne de configure, ça enlèvera pas mal de dépendances.

              Sinon personnellement j'ai un beau mélange de scripts shell, python, IRAF ou IDL selon ce qui est le plus pratique pour faire ce que je veux. C'est vrai qu'un seul outil serait préférable mais c'est pas demain la veille, en astro on est conservateur, on utilise même encore les unités CGS. :-(
              • [^] # Commentaire supprimé

                Posté par  . Évalué à 1.

                Ce commentaire a été supprimé par l’équipe de modération.

                • [^] # Re: Clone ?

                  Posté par  . Évalué à 2.

                  De tout de facon c'est une grosse usine a gaz a installer, maintenir. Il ne respecte pas du tout la structure d'un moindre programme unix


                  Ouais, comme la plupart des programmes d'astro quoi. :)

                  Je peux te garantir que les premiers pipeline pour gros instruments sur telescopes de 8metres ecrit en python vont sortir et que les profs arretent (pour une raison de cout) d'utiliser IDL.


                  Dans le labo où je suis, on a un instrument sur un 8m depuis quelque temps déjà et le pipeline est en IDL pour autant que je sache (je vais m'en assurer demain quand même, mais au moins une partie est en IDL c'est certain). Sur un futur instrument spatial le pipeline sera en jython il me semble, simplement parce que ce ne sont pas les membres du service qui ont décidé du langage. Sinon ça aurait aussi été IDL.

                  Pour l'abandon d'IDL, je ne sais pas dans quel labo tu es, mais je ne le constate pas du tout. J'ai même fait le compte tout à l'heure et parmi les thésards (donc les chercheurs de dans 5-7 ans) et post-doc que je connais, c'est bien simple on utilise tous au moins partiellement IDL.
                  • [^] # Commentaire supprimé

                    Posté par  . Évalué à 1.

                    Ce commentaire a été supprimé par l’équipe de modération.

              • [^] # Re: Clone ?

                Posté par  (site web personnel) . Évalué à 1.

                en astro on est conservateur, on utilise même encore les unités CGS. :-(
                Tant mieux ! Comme ça, vous passerez directement au MKSA !!

                Mathias, intégriste du MKSA
            • [^] # Commentaire supprimé

              Posté par  . Évalué à 1.

              Ce commentaire a été supprimé par l’équipe de modération.

              • [^] # Re: Clone ?

                Posté par  . Évalué à 1.

                Et pourquoi donc ? Scilab est bien très largement compatible avec matlab et ça ne pose de problème à personne par exemple. Il y a aussi des implémentations libres de Java. Peut-être que le mot « clone » est malheureux. J'aurais peut-être dû mettre « implémentation ».
                • [^] # Commentaire supprimé

                  Posté par  . Évalué à 1.

                  Ce commentaire a été supprimé par l’équipe de modération.

                  • [^] # Commentaire supprimé

                    Posté par  . Évalué à -2.

                    Ce commentaire a été supprimé par l’équipe de modération.

                    • [^] # Moinssage

                      Posté par  . Évalué à 1.

                      PUTAIN MAIS VOUS ETES !@#@!#!@# ou quoi?????
                      C'est pour ça que j'ai un seuil de -42 ... Ainsi je lis ce que je veux. ET NON CE QUE L'ON VEUT QUE JE LISE!
                • [^] # Re: Clone ?

                  Posté par  (site web personnel) . Évalué à 3.

                  Scilab n'est pas libre lui, donc il n'est pas vraiment comparable aux autres logiciels cités ici comme clones libres.
    • [^] # Re: Clone ?

      Posté par  . Évalué à 2.

      Je travaille dans un endroit qui utilise IDL
      Pour ma culture. Quelle est le domaine?

      Je ne vois pas trop l'intérêt du langage IDL par rapport à Python pour un projet libre. Python est très simple. Gtk et Glade sont disponible de facto. Le JIT viendra un jour avec Parrot.
      • [^] # Re: Clone ?

        Posté par  (site web personnel, Mastodon) . Évalué à 1.

        J'ai personnellement développé en IDL. Dans le domaine de la recherche et du traitement des données issues de satellitte, on utilise quasi que IDL.

        Ne me parler pas de python ou de Linux, c'est :

        IDL/Fortran sur des alpha OpenVMS

        Mes livres CC By-SA : https://ploum.net/livres.html

      • [^] # Re: Clone ?

        Posté par  . Évalué à 3.

        IDL est tres tres largement utilise en Astronomie,
        depuis pres de 10 ans, par une vaste communaute internationale.
        (au contraire de Yorik ou Python, bien moins repandus)

        Python y prend pied doucement, mais, du cote
        simplicite pour l'affichage graphique et la manipulation
        de donnees, IDL reste une reference dans ce milieu,
        malgre le prix hallucinnant des licences.
        Avec IDL, on a vraiment les donnees "sous la main",
        et le cote function/procedure a un certain succes.

        je ne pense pas que le "retard" avec la version commerciale
        soit un probleme : une grande partie des utilisateurs n'ont
        pas adoptee la partie Widgets et la programmation objet,
        qui sert pas a grand chose en calcul scientifique.
        La version actuelle de GDL implemente deja les parties
        les plus importantes de la syntaxe "sympa" d'IDL,
        utilisee le plus souvent en mode commande avec des petits scripts.

        Les etudiants se debrouillent en qlq heures avec IDL.

        C'est un gain de productivite evident sur une option C/C++ ou Fortran
        car tout le cote lourd de la programmation est evacue.

        Par rapport a la definition du projet GNU, GDL est un excellent projet.

        On trouvera des info supplementaires ici:
        http://aramis.obspm.fr/~coulais/IDL/idl.html
        • [^] # Re: Clone ?

          Posté par  . Évalué à 2.

          Je ne connais pas bien le domaine de l'astronomie. Mais IDL me semble totalement inadapté sur des volumes de données de l'ordre du To, Po. En physique des particules ça ne tiendrait pas la charge (API C++ et Python). Lorsque j'ai bossé sur les étoiles des nuages de Magellan. Le volume était quand même important. Est ce limité aux petites expériences? Quelle est le volume typique des données et de quel type?
          • [^] # Re: Clone ?

            Posté par  . Évalué à 3.

            Mais IDL me semble totalement inadapté sur des volumes de données


            L'inertie est la plus puissante des forces.
          • [^] # Re: Clone ?

            Posté par  . Évalué à 1.

            Euh, de mon experience, pour lire des gros fichiers (~100Mo), IDL pur est plus rapide que python + numarray pur, mais ce dernier est plus souple.
  • # Que faut il apprendre?

    Posté par  (site web personnel) . Évalué à 4.

    Je sais que m'a question n'est pas directement dans le sujet, mais les débats précédents sur les différents languages m'ont donné l'idée de vous la poser.
    Je m'apperçois qu'il y a de nombreux membres d'équipes de recherche sur cette page de linuxfr.
    Je suis enseignant certifié en physique appliquée. Lors de mes études à la fac d'Orsay je me débrouillait assez bien en fortran, mais c'était en 1981...
    Ma question pourait être de manière hypocrite
    <<que conseiller à un jeune d'apprendre ?>>

    En fait malgrés mon age, 47 ans, je ne me sent pas si vieux et je souhaite changer d'activité. J'ai repéré le concours sur dossier d'assistant d'ingénieur ou de technicien au CNRS.
    (Je prépare aussi l'agreg à temps perdus, mais je pense que vu le nombre de place, l'accéssibilité est déjà un bel objectif.)
    Je sais que ce n'est probablement pas réaliste, mais participer à une équipe de recherche est un vieux rève. Et puis les morpions de lycée technique me lassent.
    De toutes façons je vais essayer.
    Avez vous des suggestions qui me permettraient d'augmenter mes chances d'intégrer une équipe?
    Languages à apprendres?
    Activités au labo du lycée?

    Il fut un temps ou des enseignants ont été "mis à disposition" du CEA.
    Cela existe t il encore?
    • [^] # Re: Que faut il apprendre?

      Posté par  . Évalué à 3.

      * La triste réalité:

      Si tu n'as pas fait de doctorat, c'est pas la peine de présenter un dossier. Les postes d'assistant d'ingénieur ou de technicien au CNRS sont "des postes de balayeurs", cf. la grille des salaires et le travail ingrat.

      Ton âge n'est pas favorisant ...

      * Ce qui est envisageable:

      Par contre, si tu est enseignant et 47 ans. Donc tu as du temps libre. Alors tu peut faire une thèse non financé sur plusieurs années (5 ans ...). J'ai eu des échos de quelques cas comme cela. De plus tu garde ton ancienneté à l'éducation national pour le salaire. La thèse permet de t'évader le reste du temps.
      • [^] # Re: Que faut il apprendre?

        Posté par  (site web personnel) . Évalué à 3.

        Donc il ne me reste plus qu'à chercher un labo pas trop loin qui accepte de me prendre.

        Merci de l'info.
        • [^] # Re: Que faut il apprendre?

          Posté par  . Évalué à 2.

          Oui. Il faut un centre d'interêt. Les compétences de base. Et l'accord d'un directeur de thèse et du directeur du labo pour integrer le laboratoire.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.