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"
ftp://ftp.cs.utexas.edu/pub/garbage/cs345/schintro-v14/schintro_toc.html
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".
--Jecel