(retour page principale), (Linux et autres).

Quelques informations sur le langage de programmation IDL

et son clone libre GDL:

Le futur d'IDL : son clone libre GDL

Une alternative libre (licence GNU/GPL) à IDL ? Essayez GDL ! (Pour ma part, je suis assez surpris du bon comportement des versions 0.8.8 et 0.8.9, même si des bouts de code que j'emploie souvent dans IDL n'y sont pas présents (comme FINDFILE ...)).

Quand à sa version 0.8.11, elle est opérationelle ! J'ai d'ailleur écrit un compte rendu d'installation de cette version. Une fois installée, je vous recommande de passer aussitot en version CVS.

Ce petit mémo peut etre adapté à la version actuelle (0.9-pre).

Le langage IDL

Bref historique et raisons d'un succes

IDL est un vieux logiciel propriétaire qui s'imposa très rapidement dans les laboratoires d'astronomie dès le début des années 90.

Les langages classiquement utilisés dans les laboratoires au debut des annees 1990 étaient Fortran (77), C, un peu de Pascal. Les contraites étaient: 1/ la durée de vie du code, 2/ la portabilité du code, 3/ l'existence de librairies graphiques (au début des années 90, il y avait très très peu d'écran couleur 800x600, les terminaux X étaient disponibles en nombres limités, par contre, on avait des sorties graphiques de qualité en postscript !) (les physiciens ou astronomes ne sont pas des programmeurs, mais ils ont besoin d'outils pour manipuler des nombres (faire des statistiques), afficher des images et des tracés) 4/ des moyens simples de lire et ecrire des fichiers Unformatted a la Fortran, mais aussi d'echanger des fichiers dans un format interne (XDR) independant de la plateforme.

Par rapport à ces langages classiques, IDL apportait une bouffée d'oxygène : il etait trivial d'afficher en mode commande, il fonctionnait quasiment à l'identique sur la plupart des plateformes de l'époque (VMS, unix (Sun, Hp, Dec), MS-win). Mieux, il permettait de générer des sorties en mode PostScript.

Parmi les raisons d'un succes, on peut signaler: -- la trivialite de la syntaxe (au contraire du C) -- la triviliate de la generation de sortie graphique -- la fin, eventuelle, des boucles -- la proximite de la syntaxe avec celle de Fortran 77, -- un dimensionnement dynamique des tableaux (allocation dynamique de la memoire) -- l'interactivite et la construction de codes au vol
Ce peut paraitre banal aujourd'hui, mais pas il y a 15 ans.

Le langage en lui-meme

IDL est un langage interactif particulièrement bien adapté au traitement et à la visualisation des données (séries temporelles, images, cubes, ...). S'appuyant sur des modules compilés écrits en C++ (il existe de la documentation pour écrire soit-même de tels modules), IDL est interactif, comme Python, Yorick ou Matlab. Il permet d'écrire des procédures et des fonctions. Il est tout à fait possible de faire de la programmation orientée object avec IDL. A partir des versions 5, la programmation de Widgets est devenu possible. Ce langage est apprécié par les scientifiques ayant besoin de manipuler et d'afficher des données sans rentrer dans une mécanique lourde de programmation. On garde la main sur les données, que l'on peut voir (impression ou affichage du contenu) a tout instant (comme dans un mode debuggage). Sa syntaxe est assez proche de Fortran ou Pascal. La gestion des cubes de données est très simple. Sur les opérations arithmétiques simples (+-/*), si l'opération est non ambiguë, l'opérateur s'applique quelque soit la dimension des opérandes (dans A=A+1., A peut être un nombre, un tableau 1D, 2D ... jusqu'à 8D). Il est rare d'écrire des boucles en IDL pour affecter ou modifier des cubes de données. L'affichage (courbes, surfaces, 3D) est extrêmement aisée.

Le proprietaire-developpeur du langage : RSI et la page dédiée à des ressources relatives à IDL;

L'environnement

Les librairies

De la documentation et des tutoriaux

Des liens en obsolescence ?


(haut de cette page)
AC, création le 24-12-2001, mise a jour le 07-06-2005