Hi Tim,
Thanks for the feedback. I have to disagree on a few points. IDL is a 30+ year old language, and it has several key strengths:
1. Backwards compatibility. We try very hard to not break existing code. Occasionally we do make significant changes to the language (IDL 8.0 for example) but they are always enhancements, not breakage. Because of this, we need to be very careful when changing existing routines like the Contour procedure - if we changed it, we would need to guarantee that the resulting plots looked virtually identical to the previous plots.
2. Cross platform. If you write a widget application in IDL, it's going to look and work the same on all platforms, with just a few minor exceptions. Our remote-sensing ENVI application is a good case. It's about a million lines of IDL code, of which only a few hundred (at the most) are platform specific. However, because our widget toolkit is cross platform, we sometimes need to make compromises on functionality to avoid platform differences.
3. Ease of programming. IDL is designed primarily for scientists and engineers, who want to quickly import data, analyze it with vector arithmetic, and then produce publication-quality results. It also comes with everything out of the box - you get all of the common file formats - jpeg, tiff, scientific formats like NetCDF, XML, a URL object; a cross-platform widget toolkit; all of the built-in math routines, as well as two different graphics systems - the low-level direct graphics and the modern object graphics. Finally, you get the IDL Workbench development environment, based on Eclipse.
4. Support and maintenance. We have an excellent technical support team that consistently gets kudos for rapid response and solving customer needs. We also do product releases on a very regular basis, with significant enhancements. We also have a product services group that can build custom solutions for customers.
5. Forward looking. Direct graphics (like the contour procedure) is old and crufty. In IDL 8.0 we added a new "function" graphics system, along with many new language features such as automatic garbage collection, lists & hashes, operator overloading, the null operator, simple "." notation for object-oriented programming, and a foreach operator. In IDL 8.1 & 8.2 we continued to enhance the new graphics, added Google Earth KML output, added internationalization conversion routines, JSON parsing, etc. We are also developing new solutions for cloud-based computing, so you can deploy IDL on a server and create clients (web pages, mobile apps, etc.) that use IDL to access & process data.
Hope this helps.
Cheers,
Chris
IDL Software Engineering Manager
Exelis VIS
|