[comp.lang.misc] Icon, was:Re: Discussions of Lan......

orf@ihlpe.ATT.COM (452is-Fonorow) (01/27/88)

 >
 >I think one of the main reasons I liked ICON was that it was fast and easy
 >to program in. The resulting programs are much cleaner (read succinct) 
 >and thus easier to debug (and to grade i'm *SURE*). 
 >
 >HOWEVER, I still can't see ICON as any more than a toy language. It
 >may be good for quick prototyping of complex algorithms but you probably
 >wouldn't want to write anything *real* in it because it is interpreted.
 >
 >
 >	Charles Fineman
 >	Carnegie-Mellon University
 >	cef@h.cs.cmu.edu (via seismo)

 But isn't "quick prototyping" enough? I don't think the perception of
 slowness, in and of itself, makes Icon a "toy" -- anymore than interpreted 
 implementations of Lisp or Prolog make them toys. 

 We used Icon to prototype a "real" system that was used for over a year.
 Although we converted it to C -- we weren't in a big hurry (as you might
 guess).

 In our case, we prototyped a medium scale system (approx. 20,000 lines of 
 Icon code) that was later converted to C (turned into appox. 60,000 lines). 
 The conversion averaged several days per module (longer in the beginning 
 because of an initial learning curve).  Many modules were converted in two 
 to three days. 

 I have heard of a project at TI (Naturallink I believe) that was conceived 
 and originally written in Lisp (in a matter of weeks), but converting it to 
 C, so it would run on their IBM-PC clone, reportedly took 6 months! Icon's 
 value is that not only can you prototype fast, but it is easy to change 
 and convert to C.

 On another subject, that has apparently been raised by this news group, we
 found the Icon prototype to be reliable -- even without scope declarations.
 (There is a -u option which identifies undeclared variables, and we used
 this). The key seemed to be the Icon &null value. Unlike the C NULL defin-
 ition, Icon's &null is not valid in most computational contexts and all
 variables are guaranteed to be initialized to &null. If we forgot to give
 a variable an initial value, we quickly found out when the run-time error
 occured...

O. Rick Fonorow
AT&T Offer Integration Laboratory
1100 E. Warrenville Rd
Naperville, IL 60566
...ihnp4!ihlpe!orf