Re: Amazon used lisp & C exclusively?



Ari Johnson <iamtheari@xxxxxxxxx> writes:
Google for "lisp tutorial" and tell me the index of the hit that
explains in the first chapter or two clisp's ext:saveinitmem. This is
not about what is possible, it is about what is available to a newbie.
The fact that you are personally capable of doing something in no way
indicates that a newbie will figure it out right away without a lot of
coaxing.

I tried C tutorial and Lisp tutorial and tried the first hit.

Truely enough, the C tutorial starts with:
http://www.physics.drexel.edu/courses/Comp_Phys/General/C_basics/c_tutorial.html

Let's be polite and start by saluting the world! Type the following
program into your favorite editor:


#include < stdio.h>

void main()
{
printf("\nHello World\n");
}

Save the code in the file hello.c, then compile it by typing:

gcc hello.c

This creates an executable file a.out, which is then executed simply
by typing its name. The result is that the characters `` Hello World''
are printed out, preceded by an empty line.


while the Lisp tutorial starts with:
http://www.notam02.no/internt/cm-sys/cm-2.2/doc/clt.html

Symbols

A symbol is just a string of characters. There are restrictions
on what you can include in a symbol and what the first character
can be, but as long as you stick to letters, digits, and hyphens,
you'll be safe. (Except that if you use only digits and possibly
an initial hyphen, LISP will think you typed an integer rather
than a symbol.) Some examples of symbols:

a
b
c1
foo
bar
baaz-quux-garply

Some things you can do with symbols follow. (Things in bold after
a > prompt are what you type to the LISP interpreter, while other
things are what the LISP interpreter prints back to you. The ; is
LISP's comment character: everything from a ; to the end of line
is ignored.)

> (setq a 5) ;store a number as the value of a symbol
5
> a ;take the value of a symbol
5
> (let ((a 6)) a) ;bind the value of a symbol temporarily to 6
6
> a ;the value returns to 5 once the let is finished
5
> (+ a 6) ;use the value of a symbol as an argument to a function
11
> b ;try to take the value of a symbol which has no value
Error: Attempt to take the value of the unbound symbol B


Ok, the Lisp tutorial fails to tell the student to launch the lisp
system. Just before that, it just mentionned that:

Note: This tutorial introduction to Common Lisp was written for
the CMU environment, so some of the details of running lisp toward
the end may differ from site to site.

without ever mentionning that to launch CMU CL, you have to type: lisp RET
(much less that to lauch sbcl, you have to type: sbcl RET
and that to lauch clisp, you have to type: clisp RET).


So already, Common Lisp addresses people with 1 IQ point more than C
programmers :-(.


But I still fail to see how that prevent people to _learn_. The
first thing any Lisp tutorial I've ever seen teaches, is how to enter
forms at the REPL and watch for the result or error message printed.
Quite naturally. Or do you want lisp tutorials to teach the C process?


By the way, this is not different to the L.S.E. Manual I learned
programming with in 1975, or any BASIC tutorial at about the same
time: the first thing you learned was how to use the REPL! The
strange way was to save a file (or a card deck) and to send it to the
compiler to get a listing of error messages five minutes (or a day)
later.



[...]
Anyhow, change what I said to "Neither of these applies directly to
the Lisp way of doing things." No sane Lisp programmer would tell you
to write all your code, compile it down to a single executable, and
run it. You build it up in smaller pieces and test them as you go.
That's one of the chief advantages of programming in Lisp, and it just
plain does not translate into "write, compile, run the whole thing,
and go hunting for bugs" the way other languages encourage you to do
things.

Yes, as it's explained in any lisp tutorial. Or do you mean that
people try to learn lisp without reading lisp books and lisp
tutorials?


[...]
That said, it would be great if there were easy-to-find tutorials that
got people past the real barriers to entry.

Go tell that to Google! Why a search for lisp tutorial doesn't return
as first hit: http://www.cliki.net/Online%20Tutorial ?


Lisp newbies don't need
to spend hours reading through ridiculously long tutorials on how to
write a recursive function. If they have programming experience, they
know all that and are not held back by it at all. Where they need
hand-holding is summarized in my previous message on this thread.

Perhaps you could write this hand-holding tutorial? You could even
insert it in first position on that cliki.net page.


--
__Pascal Bourguignon__ http://www.informatimago.com/

"You cannot really appreciate Dilbert unless you read it in the
original Klingon"
.



Relevant Pages

  • Re: Common Lisp from a Unix perspective - barriers to using CL
    ... * Documentation for introducing Lisp to existing programmers is poor; ... IMO, tutorials should be "hands on", where the newcomer gets to ... modern programming is often lacking and/or hard to find. ... Java basically does it that way, ...
    (comp.lang.lisp)
  • Re: Common Lisp from a Unix perspective - barriers to using CL
    ... given how mature the Lisp world is. ... It's an odd choice you made, to insist on "Debian stable". ... That's what tutorials are for. ... I was on the front porch with Grandpa, ...
    (comp.lang.lisp)
  • Re: Amazon used lisp & C exclusively?
    ... while the Lisp tutorial starts with: ... without ever mentionning that to launch CMU CL, you have to type: lisp RET ... There are also a good deal of tutorials on ... If they have programming experience, ...
    (comp.lang.lisp)
  • Re: Where To Begin
    ... I'd like to go into things without purchasing ... another introductory level publication and a reference source would be ... Does anyone have a reccomendation for introductory tutorials or ... "Common Lisp: A Gentle Introduction to Symbolic Computation" ...
    (comp.lang.lisp)
  • Re: I/O in Lisp
    ... None of the tutorials show me how to do ... assuming that by Lisp you ... > Practical Common Lisp, all about Files and File I/O. ... I recommend "Common Lisp Programming for Arificial Intelligence", ...
    (comp.lang.lisp)