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