A revolutionary OS/Programming Idea
Lynn H. Maxson
Lynn H. Maxson" <lmaxson@pacbell.net
Mon Oct 6 11:56:01 2003
Alaric B. Snell wrote:
"...He's not saying that what you do in LISP can't be done
graphically; just that the graphical editors for LISP never
really made it in the big time. ..."
I think you've given an excellent brief overview of LISP for
John Newman's consideration. He needs to understand that
LISP and its more modern derivatives stand at the forefront of
modern software development. I have a deep appreciation for
LISP's endurance over the years.
LISP along with APL and REXX employ dynamic typing. I
always enjoy it when people treat the inability to do
something as a "feature", in this instance to declare a variable
explicitly by type. While I far prefer "fixed bin (31)" to "int"
because it also allows me to have "fixed dec (7)" or "fixed bin
(24, 6)", dynamic typing has an impact on documentation in
that it introduces homonyms (same name, different referent)
unnecessarily in a program. This means in documentation that
one name has to indicate multiple "meanings".
This is not a crime in english for verbs, the programming
equivalent of operator overloading, but it rivals multiple
names for the same person so common in russian novels.
So it is something you can do, but for purposes of clarity
probably should not. It doesn't detract from dynamic typing,
though you might explain to me how you can express variable
precision, fixed-point binary arithmetic in LISP.
For my purposes in the specification language I propose the
only thing interesting in LISP is the list aggregate itself along
with the possibility of an empty list. This allows for returning
0, 1, or more values as a result of function evaluation. In logic
programming where a result is either false (0 entries) or true
(1 or more entries) the list aggegrate is indispensable.
Whereas the remainder of LISP, specifically its syntax, is not.
However, LISP does provide ample opportunity to familiarize
oneself with this aspect of lists.
I also do think much of the fact the program is a list capable
of being processed as input and thus dynamically changed as
part of that process. Forth has a similar characteristic which
seems to fascinate some.
I will not say it does not have some value. However, I will say
that it's sheer imagination to take the next leap of faith that
any program can modify itself in other than some
predetermined manner: it remains rule-based on rules
established externally which can never be internalized. It
means that "thinking machines" per se can never occur on von
Neuman architecture or Turing machines.
We know only that we think. We know nothing (we are
ignorant) of what allows us to think. This suggests that we
ground ourselves firmly in pragmatics and absent ourselves of
esoterics in programming. We cannot make a program do in a
rule-based system where we don't know the rules ourselves.