Foreword

GDL is an open-source clone of the IDL interpreted language primarily intended to handle legacy code. A serious number of scientific data acquiring has been done in the last 40 years using IDL as programming language, and these codes should still run today with GDL. At least this was the primary intent of this project.

Several reasons drived people to choose the IDL interpreter through those years. An interesting mix of Fortran/C/pascal like syntax? Perhaps. Most certainly because IDL (hence, GDL) syntax is vector/array natively based (no “loops” over array indexes), when many other are not (Java,Python…). For the scientist, the computing performances of IDL (hopefully GDL) are in range of (C,C++,Java,Fortran) compiled code (without the loop hassle), way way faster than out-of-the-box Python for example. Being optimized was a plus in the old days with the then slow computers. Now being efficient is desirable due to environmental issues. To be fair, all language and interpreter have made progresses in this direction in the last years.

Another reason was the huge amount of highly specialized library functions and procedures that come with IDL. Of those, the GDL project has only a small subset. Look for yourself. Medical imaging routines, for example, are not going to be ever written. Unless YOU do it. 3D visualisation is in infancy. But the rest is in quite good shape now.

But if you read this, it is also because GDL has improved up to being useable in replacement of IDL for everyday scientific work, at no cost. Now, GDL harbors many of the needed functions and procedures to do general scientific data processing, read and write many scientific data formats, mapping… The documentation is not in GDL. You’ll find it in the IDL books or on the IDL website ( if you know the command name, just type ? before the name, such as ?HELP). If GDL does not conform to the documentation, lack a basic feature, create an issue on this website. Better, participate to the GDL project. Welcome!

GDL is also known as gnudl or even gnudatalanguage by the packagers of the open source software. Your mileage may vary, as those excellent people do not necessarily push the last version of GDL. Serious GDL use should probably be done with a an optimized compilation of GDL and dependencies from the sources here on GitHub, as we continously improve the product. Also, optimized compilation speedups GDL by 10.