[comp.lang.ada] Ada - Lisp Wars

IVANOVIC%VAXR@CIRCUS.LLNL.GOV ("Vladimir Ivanovic 415.423.7786") (03/14/89)

    Several persons have recently said things like "Ada can do everything
    Lisp can" or "Ada can't do everything Lisp can."  I'm not sure if it's
    useful to know the answer to such questions. 
    
    Some languages are better suited to certain problem domains than
    others. One can be more effective using those languages on those
    problems, rather than forcing the use of an unsuitable language.
    That's why I prefer programming in an environment where *every*
    language is callable from another. 
    
    One of the things DEC did right when they introduced the VAX/VMS series
    in 1978 was to define the VAX/VMS Calling Standard.  All DEC's (except
    TPU - c'mon DEC - what's the problem here?) languages are callable from
    one another.  It is possible to write an Ada routine which calls a Lisp
    routine which calls a BASIC routine which calls a C routine which calls
    an OPS5 routine.... (provided the called langugage knows about the
    caller's data types). 
    
    In any case, I'd like to offer a proof that Ada and Lisp can both do
    anything the other can do. 
    
    (1) It is possible to write a Lisp interpreter in Ada.  Hence Ada
    can do anything Lisp can do.
    
    (2) It is possible to write an Ada compiler in Lisp.  Hence Lisp
    can do anything Ada can do.
    
    Voila!  The argument is over.  Everyone wins.  No one loses.
    
    The really tough question is "When is it appropriate to use Ada?
    or Lisp? or Scan? or C? or <insert favorite language here>?"

gateley@m2.csc.ti.com (John Gateley) (03/16/89)

In article <8903141815.AA03054@ajpo.sei.cmu.edu> IVANOVIC%VAXR@CIRCUS.LLNL.GOV ("Vladimir Ivanovic 415.423.7786") writes:
> [ ... ]
>    In any case, I'd like to offer a proof that Ada and Lisp can both do
>    anything the other can do. 
>    
>    (1) It is possible to write a Lisp interpreter in Ada.  Hence Ada
>    can do anything Lisp can do.
>    
>    (2) It is possible to write an Ada compiler in Lisp.  Hence Lisp
>    can do anything Ada can do.
>    
>    Voila!  The argument is over.  Everyone wins.  No one loses.
>    
>    The really tough question is "When is it appropriate to use Ada?
>    or Lisp? or Scan? or C? or <insert favorite language here>?"

For me, the question is not "can one language do something that another
language can", it is "how easy is it to one thing in two different languages".

For example, a recent posting shows how ``untyped'' variables can be
used in Ada. This has drawbacks when compared to Lisp: it is harder to
do, special accessors/settors must be defined, etc. This suggests that
Ada can not express some things as well as Lisp.

On the other hand, Lisp may not express some things as well as Ada, though
I am not sure about this. (Okay, so I am prejudiced towards Lisp :^).

Anyways, the issue is expressability, not completeness. Of course, it
is rather difficult to define expressability.

John
gateley@tilde.csc.ti.com