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:
“Wittgenstein imagined that the philosopher was like a therapist whose task was to put problems finally to rest, and to cure us of being bewitched by them. So we are told to stop, to shut off lines of inquiry, not to find things puzzling nor to seek explanations. This is intellectual suicide.”
—Simon Blackburn (b. 1944)
“If we fail to meet our problems here, no one else in the world will do so. If we fail, the heart goes out of progressives throughout the world.”
—Eleanor Roosevelt (18841962)
“Its so easy during those first few months to think that the problems will never end. You feel as if your son will never sleep through the night, will always spit up food after eating, and will never learn to smileeven though you dont know any adults or even older children who still act this way.”
—Lawrence Kutner (20th century)