learning Lisp (was: Contributing)

Jecel Assumpcao Jr jecel@tunes.org
Thu Feb 20 14:23:02 2003

On Thursday 20 February 2003 18:07, Brian T Rice wrote:
> If it matters, people like Eric Raymond and Richard Stallman (by no
> means necessarily the greatest examples) will both tell you that
> learning Lisp will make you a better programmer even if you never use
> it (ESR wrote an essay with this as its thesis, actually). If you
> reject that kind of advice, you're not being flexible, and not
> reflecting well enough yourself. ;)

Your advice is great and I'll say more about it below. But you must see 
that you have been expressing yourself in such an agressive tone that 
makes it very likely that your advice will be rejected. Now I 
understand the frustration of dealing with people who are starting out, 
but see how they are treated in the Squeak list and what the result is.

On Thu, 20 Feb 2003, David Scott Williams, web wrote:
> How do amateurs who love the very fabric of programming becoming
> experts without contributing, making errors, and fixing them?

That is exactly how you become an experts but given the nature of Tunes 
you can't do any of that before learning a few things. Take a look at 
Brian's Slate language, for example. It is written in Common Lisp and 
if you don't know that then the source won't do much for you. And there 
is little documentation, though it is easy to figure out if you know 
Smalltalk (especially the Self dialect). If you don't know that, then 
you will have to keep bugging Brian with trivial questions for the 
longest time before you can do the simplest things in Slate. I hope you 
can see how the prospect of that might be upsetting to him.

Let me tell you about how I learned Lisp and why I think it would be 
worth it for your to learn it (or the Scheme dialect - I really 
recommend Paul Wilson's book-in-progress "An Introduction to Scheme and 
Its Implementation" 
which will also teach you about interpreters and compilers).

I was in the second year of an electrical engineering course in 1981 and 
had programmed in the assembly language for several different 
processors, in Basic, Fortran, Algol, Cobol and Pascal. These were all 
essentially the same and I thought that I had learned everything there 
was about computers and they were boring. Then I got as a present 
Patrick Henry Winston's "Artificial Intelligence" (since split into two 
books: "Artificial Intelligence" and "Lisp", see 
http://www.ai.mit.edu/people/phw/Books/) and an entirely new world of 
computing opened its doors for me. I then learned Forth, Logo (another 
Lisp dialect), Smalltalk, APL and so many other languages. Many will 
teach you entirely new ideas and are worth learning, but if you must 
choose just one then Lisp is one of the best possible starts.

Languages such as Python and Perl are slowly adopting nice features for 
Lisp and others, but it is still best to learn the "real thing".