Newsgroups: comp.sys.mac.scitech,sci.image.processing
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!news.moneng.mei.com!uwm.edu!lll-winken.llnl.gov!uop!csus.edu!netcom.com!agraps
From: agraps@netcom.com (Amara Graps)
Subject: Re: Opinions on IDL sought
Message-ID: <agrapsD370K8.3n8@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
References: <Melissa.Hines-2901951743140001@128.253.229.125>
Date: Mon, 30 Jan 1995 00:40:56 GMT
Lines: 126
Xref: glinda.oz.cs.cmu.edu comp.sys.mac.scitech:3793 sci.image.processing:12243

Melissa.Hines@Cornell.edu (Melissa A. Hines) writes:

>I am in the market for a program to perform (scientific) image analysis.
...

>If you have used IDL, would you please drop me a line and tell me how (and
>why) you liked/hated it? 

I've used IDL since 1982 (first on PDP-11s, then VMS Vaxes, then Unix
workstations, now on a Macintosh), so I might be a little biased :).
I like it alot. When I first started using it, the only alternative
was writing programs in Fortran, and using a bizarre plotting package
like DISPLA.

IDL is a vector-based language that makes it easy to manipulate arrays
and matrices. If A and B are arrays, then you can multiply them
together without a FOR loop, letting IDL worry about accessing each
index: C = A*B.  However FOR loops are available if you need them.
(Because it is an interpreted language, some actions slow down the
computation, and using FOR loops is a biggie. I've done testing
comparing IDL speed to Fortran in various actions, and IDL was as fast
as a Fortran program in many cases.)

The scientific functions and procedures that come with IDL are often
all that scientists need, at least when you first start out.  And if
you need to do some computation where a function doesn't exist, users
over the years have contributed a lot of routines to various archives
all over the world (the two at John Hopkins and at Goddard are
especially good).  The language, for the most part is "open", i.e. you
can see the text of any particular procedure or function, in case you
doubt the technique, or want to modify it. Some functions and
procedures are black-box, intrinsic functions or procedures, but not
nearly as many as Matlab (see below) are.

Keep in mind that you are in a scientific data analysis environment
whose roots are *not* in the Mac world, so you don't have nice
user-interface items to lead you through every step of the data
analysis process, like you might have with Igor Pro (I have't used
Igor Pro, just Igor 1.2, and didn't like it that much.)

>I also haven't seen the documentation --
>a critical piece in any software package.

Well I've never liked the IDL documention very much. (I'm actually
toying with the idea of writing an IDL book, since there are none out
there.)  The information that you need probably *is* in the manuals,
but it's somewhat hard to find (the manuals are organized in a wierd
way).

Three-d plotting is currently not very well documented, and the way
that IDL does it is very convoluted. Other users and I have complained
about it, and I think RSI are taking steps to better document how to
do it.

Image procesing and animation is pretty slick though.

BTW, if you need to do "slicing and dicing" of a volume, in a way like 
Spyglass Dicer, IDL has a really great widget routine to do it.

>Is it easy to make your own "widgets" and are
>they useful? 

Well even though you are in a very sparse user-interface interactive
programming environment, it doesn't mean that you can't program the
user-interface using widgets in an IDL program for yourself or for
your users to use.  You can create buttons, menus, scrollboxes
etc. The IDL widget builder is a fairly new addition, and I don't have
very much experience with it yet. I've created very nice, complex
widget programs, though, and it requires the same kind of mind-set
that any other GUI programs require- tracking event loops, and
figuring out what options to give the user, and then providing them in
a graphical way.  There *is* a learning curve if you've never done
this type of programming before, but Research Systems Inc. (RSI-
makers of IDL) provides many, many examples to give you help. And if
you've done event-loop kind of programming before, I don't think
you'll find IDL's methods difficult.

>How is their technical support (or is there an active Usenet
>IDL community/list server from which to beg advice)? 

Their company support (writing to support@rsinc.com) is very good,
I usually get responses within 24-34 hours. You have to pay yearly
technical support costs, though- about $200 year (don't remember
exactly how much). The Usenet group: comp.lang.idl-pvwave has
some smart programmers giving answers if you don't want to pay
for the IDL technical support. RSI usually doesn't answer questions
on that newsgroup (they have a company policy against promoting
IDL there because it's shared by two products: IDL and PVWave).

>Is there another
>alternative for Macintosh that I have missed? 

Matlab?  It's a similar scientific data-analysis environment, with
capabililties to build GUI programs, and it costs about the same:
~$1500. Since I've spent the last 4 months converting Matlab wavelets
code to IDL, let me tell you some of the differences.  IDL is more of
a true programming language. Matlab has scripts and functions and no
way to explicitly type a variable. IDL has programs, procedures, and
functions and a language syntax sort of like a cross between Fortran,
Pascal, and APL. Matlab's syntax is much more compact than IDL's. (For
example: x = transpose(y) in IDL is x=y' in Matlab.) Matlab has many
more built-in, intrinsic functions than IDL. MathWorks, the company
that makes MatLab, has a thriving business selling Toolkits, such as a
Signal Processing Toolkit, which are libraries of more intrinsic
functions, for a fairly steep cost (I think).

(BTW If anyone has Matlab code that they want converted to IDL or vice
versa, or other IDL/Matlab/etc scientific programming, contact me. I'm
looking for new projects, and my rates are inexpensive. :) )


>Melissa A. Hines                   Melissa.Hines@Cornell.edu
>Dept. of Chemistry
>Cornell University


I hope this helps in your bying decision. Feel free to ask more specific
questions (either here or in private email).

Amara

-- 

*************************************************************************
Amara Graps			email: agraps@netcom.com
Computational Physicist         vita: finger agraps@sunshine.arc.nasa.gov
Intergalactic Reality           bio: finger -lm agraps@netcom.com
*************************************************************************
"When we remember we are all mad, the mysteries disappear and life stands
explained."  --Mark Twain








