GDL est un clone libre d’IDL, logiciel propriétaire largement utilisé en astronomie et dans d’autres domaines (télédétection, médecine). Il s’agit d’un langage interprété à la syntaxe simple, typée dynamiquement, permettant d’écrire des fonctions complexes. Par rapport aux langages compilés classiques, il présente l’avantage de laisser la main sur les données à tout moment et de les afficher aisément.
Pour les calculs, ce langage interprété fait appel à des librairies écrites en C++, ce qui n’est pas pénalisant niveau temps de calcul lorsque l’on sait s’en servir ! (cf Astuces ci-dessous). Ce langage sait gérer des objets à plusieurs dimensions (vecteurs, images, cubes, …) et des structures. A travers des commandes concises, il permet un affichage simple de courbes, surfaces et images, avec une grande richesse de paramétrage.
Cf les définitions sur wikipedia :
GDL a une interface avec Python, des routines écrites en python peuvent être appelées depuis GDL.
Plusieurs personnes, chercheurs, ITA et étudiants (master et thèse), utilisent GDL de manière régulière ou sporadique à l’Observatoire. Je (AC) suis en contact avec des utilisateurs au CEA, dans des laboratoires du Max-Planck, à la Nasa, dans des universités américaines, en Inde … Les nouveaux venus qui ne connaissent pas IDL sont plutôt satisfaits car la syntaxe est simple, les performances raisonnables, la stabilité aussi.
Les utilisateurs avertis d’IDL sont plus gênés car :
Certains programmes fonctionnant en IDL ne tournent pas immédiatement sous GDL. On peut distinguer plusieurs cas :
Dans le cas 1, il faudra voir s’il existe un moyen simple de contourner le problème, ou d’implémenter le code manquant (en *.pro ou en C++, cf cas Bessel). Sinon, faire une demande aux développeurs. Dans le cas 2, bien vérifier ce qui est dans les chemins. On a eu des retours de personnes n’ayant pas compris comment ajouter Astron ou Mpfit dans le chemin des librairies vues par GDL. Oui, l’installation complète de GDL avec Save/Restore, la cartographie, FFTw et ImageMagick (pour les entrées-sorties dans divers formats graphiques) peut être longue ! Dans les cas (3) et (4), un rapport de boggue sera bénéfique à tout le monde, car la version actuelle est plutôt bien stabilisée pour l’usage quotidien des principaux utilisateurs connus et des développeurs.
* On peut utiliser le flag !GDL (DEFSYSV, ‘!gdl’, exist=flag) pour tester si on est en IDL ou en GDL, ce qui permet de contourner aisément les éventuels problèmes restants en traitant les 2 cas (cf cet usage dans testsuite/test_besel.pro dans le CVS).
* Certaines versions ou évolutions de librairies externes (readline, plplot, GSL, FFTw, …) peuvent poser problème (à la compilation ou durant l’usage de GDL). Ainsi, les dernières versions de PLplot (5.6.x et 5.8) semblent poser problème avec GDL 0.9 pre 4/5/6. La version historique 5.5.3 disponible pré-packagée sous Debian ne pose pas de problème… Sous OSX, la readline fournie par Apple, ancienne et limitée, doit impérativement être mise à jour pour compiler GDL.
Commentaires
Fiches plume sur les logiciels aux fonctionnalités équivalentes