Problems
Some of these features, which make IDL very simple to use interactively, also cause difficulties when building large programs. The single namespace is particularly problematic; for example, language updates that include new built-in functions have on occasion invalidated large scientific libraries. IDL also lacks nested arrays (that is, arrays of arrays are not permitted).
Arrays are passed by reference, and this mechanism is an advertised feature of the language to pass data back out of a subroutine—but array slices are copied before being passed, so that data do not flow back into array ranges, violating the principle of least surprise.
Many historical irregularities survive from the early heritage of the language, requiring individual work-arounds by the programmer. As an example:
- Array indexing and subroutine entry can both be carried out with exactly the same syntax (parentheses); this ambiguity, coupled with the single namespace for all variables and subroutines, can cause code to stop working when newly defined subroutines or language extensions conflict with local variable names. IDL programmers can avoid many of these problems by using square brackets for array indexing, thereby avoiding conflicts with function names which use parentheses.
The preceding issue can be alleviated using this compiler option:
COMPILE_OPT STRICTARR- ITT Visual Information Solutions (ITT VIS), the developers of IDL, have taken explicit steps to prevent bytecode compatibility with other environments. Files containing compiled routines use a binary tagged-data-structure format that has not been officially published but has been investigated and documented by users but also contain the following notice as ASCII text embedded within each saved file: "IDL Save/Restore files embody unpublished proprietary information about the IDL program. Reverse engineering of this file is therefore forbidden under the terms of the IDL End User License Agreement (IDL EULA). All IDL users are required to read and agree to the terms of the IDL EULA at the time that they install IDL. Software that reads or writes files in the IDL Save/Restore format must have a license from ITT Visual Information Solutions explicitly granting the right to do so. In this case, the license will be included with the software for your inspection. Please report software that does not have such a license to ITT Visual Information Solutions..." As of February 2010, the statement has not been tested in a court of law.
Also, that provision of the IDL EULA has no effect in Australia, as a result of sections 47D and 47H of that country's Copyright Act.
Read more about this topic: IDL (programming Language)
Famous quotes containing the word problems:
“I respect guilt. It is a dangerous but sometimes useful beast. The guilt that made me want to solve all my childrens problems meant trouble. The guilt that made me question my role in our mother-daughter squabbles proved helpful. Yes, I care about my kids problems, and I long to make suggestions. But these days I wait for children to ask for help, and I give it sparingly. Some things cant be fixed, and I tell them so.”
—Susan Ferraro (20th century)
“Those great ideas which come to you in your sleep just before you awake in morning, those solutions to the worlds problems which, in the light of day, turn out to be duds of the puniest order, couldnt they be put to some use, after all?”
—Robert Benchley (18891945)
“We are all adult learners. Most of us have learned a good deal more out of school than in it. We have learned from our families, our work, our friends. We have learned from problems resolved and tasks achieved but also from mistakes confronted and illusions unmasked. . . . Some of what we have learned is trivial: some has changed our lives forever.”
—Laurent A. Daloz (20th century)