http://gnudatalanguage.sourceforge.net. IDL is a registered trademark of Research Systems Inc and is what I use at work for all my data analysis and plotting, its tremenously useful. Its fast and powerful, allows compile-on-the-fly, etc... well, read about it on http://www.rsinc.com/idl/ if you want to. The only thing wrong with IDL (apart from needing /cell_fill on polar stereo projections...) is that its quite expensive. Which means that sharing code with people that don't have it won't work. But along comes GDL... or at least, its coming.
The current (0.8.8) version says it features:
Full syntax compatibility with IDL 6.0
ALL IDL language elements are supported, including:
* System variables,
* Common blocks,
* Assoc variables,
* All operators,
* All datatypes,
* _EXTRA, _STRICT_EXTRA and _REF_EXTRA keywords...
The file input output system is fully implemented
(Exception: For formatted I/O the C() sub-codes are not supported yet)
Which all sounds very nice. I don't need it, because I have IDL, but I decided to try downloading it and seeing if I could make it work. First I needed to download plplot, which it relies on, and make that; OK. Then make GDL. This proved a bit problematic as I lacked a few things (hdf; ImageMagick; etc) that it didn't actually need but wanted. Sadly it wasn't clever enough to turn these off in the configure and I had to manually, but having done that I get an executable that runs and understands usual IDL syntax. Some things clearly work; others (.run; the normal-random-generator randomn) don't. Plotting to the z-buffer didn't work.
So it looks to me that if you can't afford IDL, it might well be worth looking at GDL, but probably some rather important bits are missing at the moment.