low-level approach

Kyle Lahnakoski kyle@arcavia.com
Mon Jan 14 21:07:01 2002


mdanish@andrew.cmu.edu wrote:

> As for this entire sub-thread, if any modern Lisp were truely as you
> describe it, it would be less than useless for most practical purposes.
> I want arrays, structs, classes, hashtables, etc, and I want them
> *efficiently* implemented in native-code compilers.  Of course Java/C++
> and the rest of the crowd were to be compared against that extremely
> backwards and limited form of Lisp then they would seem to be more
> practical.  Fortunately the designers of Common Lisp didn't think that way.
> If you want an example of a Lisp that is closer to what you present,
> see the misnamed "newLISP", http://newlisp.sf.net/ I believe.

I did not mean to imply that Lisp is not superior to C or Java.  I
wanted a discussion on WHY it is so.  What aspects of Lisp make it a
good language?  Arrays, structs, classes, hashtables are all features
that make a language better.  I would like to know more about the
aspects of the core Lisp syntax that makes it preferred over other
languages.


> Finally: The fact that all Turing-complete languages can express each other
> does not lead to the conclusion that all Turing-complete languages are
> equally expressive, or have equal semantics. 

The point of that post was that expressiveness appears to have no formal
definition.  I am having a conversation with Billy Tanksley where he
suggests that expressiveness is related to minimum code length.  An
excellent thought, but I have trouble digesting it because it appears to
make code unreadable/complex; much like trying to read/write a zipped
text file.


> I can write a Lisp program
> with Turing-machine notation if I first design a Lisp interpreter/compiler
> in Turing-machine notation.  But by the fact that I have to write an
> interpreter/compiler first means that Turing-machine notation does not
> have the same expressiveness as Lisp.  

Of course not.  Our intuition has something in mind.  I am unsure of
what expressiveness is or even if it even exists.

Suppose I am given a commercial C development environment with a Lisp
package.  Is the resulting system as expressive as Lisp?

This supposition lead me to my ranting at the end of my other post.  I
saw that these extra code portions could be realized as IDE features
(GUI builder, lexx, yacc, Lisp interpretor, etc).  Is this IDE not as
expressive as Lisp?  This brings up the question of why do we even need
a better language when we can (in theory) build whatever we want from
any turing-complete language to begin with?  Of course, all these
features take a lot of work to build.  But to go a step further, in
trying to design an HLL for Tunes we are essentially trying to make IDE
features appear as beneficial language aspects.  Does this mean that we
are in for the same amount of work no matter if our advancements are in
the form of IDE features or language aspects?.