···@aero.org (Scott "TCB" Turner) writes:
>Once upon a time I wrote:
>>A language that has a 1000 built-in functions (constructs) is doomed.
>>People don't have the cognitive mechanisms to deal with that number
>>and variety of mechanisms.
>
>A number of people have responded to this with comments of the sort
>"C has immense numbers of functions in libraries, and people deal
>with that..."
>
>I don't think comparing Common Lisp's plethora of built-ins with
>library functions in other languages is completely relevant. For the
>most part, library functions are not general programming constructs.
>They perform specific computing tasks such as i/o, database retrieval,
>statistical manipulations and so on.
But that's exactly what's going on in Common Lisp. The language
doesn't have 1000 built-ins that do the same things that C's built-ins
do. CL gives you explicit functionality that you just don't have in C
(or many other languages). For example, CL has:
Many more built-in types
Explicit run-time typing
Multiple values
Real macros
An explicit representation of environments
Packages
A system-independent representation of the file system
(plus logical pathnames)
An interface to the lexical analyzer (readtables)
An interface to the compiler
Sophisticated condition signalling and handling
An introspective object system
I want and use all of these things. C may have shadows of some of
them, but they are not richly represented enough for me (please don't
provide counter-examples). Which is not to say that some of your
criticisms of specific cases are not well-founded. There is some
unnecessary repetition in Common Lisp, and there are constructs that
are only there for historic reasons. I have never seen code that uses
PROG2, and I don't use SETQ, RPLACA or RPLACD. I have no use for
LOOP, pretty printing, or most of the FORMAT sublanguage (which is
Turing complete, isn't it? :) ). But what many people don't seem to
take into account is that CL is not just a rebinding of the same
functionality provided by C. To be only somewhat facetious, I think
comparing the sizes of Common Lisp and C is like comparing the sizes
of C and a RISC instruction set.
--
John Burger ····@mitre.org
"You ever think about .signature files? I mean, do we really need them?"
- alt.andy.rooney
In article <·····················@linus.mitre.org> ····@mingus.mitre.org (John D. Burger) writes:
>I have no use for ... most of the FORMAT sublanguage (which is
>Turing complete, isn't it? :) ).
nope, format is not turing complete. It needs a way to assign to
a variable (and look at the variable). I spent some time with Guy
thinking about the turing completeness of format.
>John Burger ····@mitre.org
On a more serious note, I think that people are using a confused definition
of complexity. A language that includes 1000 functions is not necessarily
10 times more complex than a language that only includes 100 functions.
--
-- jeff
seismo!godot.think.com!mincy