From: ········@fastmail.fm
Subject: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <1136633832.407435.175250@f14g2000cwb.googlegroups.com>
Hi I would like some advice of which language to choose, Lisp, Scheme,
Smalltalk or something else.

What I'm after are powerful programming ideas and I don't think I can
learn them without them being expressed in some programming language.
I'm not after to make large program in this language (I think I'll be
programming in an uglier languages like C++ and Java because there are
more job offers there). I just want to learn powerful ideas so that
when I'm forced to program in another language I can still use the
ideas I've learned.

But which program should I choose? Lisp was created by McCarthy and has
Church's lambda calculus as a root. As I understand McCarthy used an
axiomatic approach when he created Lisp. This vouches for a clean,
simple and pure design. On the other hand it's old and Scheme was
created with the gained knowledge of Lisp and other ideas that came
afterwards. I also heard that Scheme is cleaner and more simple than
Lisp, but I do not know if that is so. Smalltalk is also a pure
language building on ideas of Alan Kay who is highly respected.

Wild Mind

From: Stefan Nobis
Subject: Re: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <8764ovunf0.fsf@snobis.de>
········@fastmail.fm writes:

> Hi I would like some advice of which language to choose, Lisp, Scheme,
> Smalltalk or something else.

If it's about learning ideas and concepts, I would probably start with
Haskell, then maybe Prolog or Oz and after that come back to Common
Lisp (not the most straight forward language, but there is a little
bit of danger, after learning CL not to bother with other languages :)).

That's not enough? Then maybe add Smalltalk and/or Eiffel to the mix.

But don't learn only one language, learn at least 3-4 different
languages.

-- 
Stefan.
From: Kenny Tilton
Subject: Re: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <lj5wf.43389$Ed.4627@news-wrt-01.rdc-nyc.rr.com>
········@fastmail.fm wrote:
> Hi I would like some advice of which language to choose, Lisp, Scheme,
> Smalltalk or something else.
> 
> What I'm after are powerful programming ideas and I don't think I can
> learn them without them being expressed in some programming language.
> I'm not after to make large program in this language (I think I'll be
> programming in an uglier languages like C++ and Java because there are
> more job offers there). I just want to learn powerful ideas so that
> when I'm forced to program in another language I can still use the
> ideas I've learned.
> 
> But which program should I choose? Lisp was created by McCarthy and has
> Church's lambda calculus as a root. As I understand McCarthy used an
> axiomatic approach when he created Lisp. This vouches for a clean,
> simple and pure design. On the other hand it's old and Scheme was
> created with the gained knowledge of Lisp...

Close. A few people thought they had gained some knowledge and tried to 
do better by making a smaller standard. That unfortunately has nothing 
to do with programming, so Scheme just staggers on as this failed 
revolution, its devotees huddling in tents deep in the mountains hoping 
for Common Lisp to someday declare an amnesty and let them slink back 
into the real world.

Smalltalk is cute but lacks multiple inheritance and macros and source 
files. it has ridiculous rules of precedence and this bizarre idea that 
OO is good for absolutely everything. Not.

When you try to grow with those two, you end up mostly just learning to 
dance to the highly constrained tunes their makers have dictated for 
you. That stifles growth, and it does not seem that is what you are after.

kt
From: Pascal Costanza
Subject: Re: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <42c7jhF1i3bquU1@individual.net>
········@fastmail.fm wrote:
> Hi I would like some advice of which language to choose, Lisp, Scheme,
> Smalltalk or something else.
> 
> What I'm after are powerful programming ideas and I don't think I can
> learn them without them being expressed in some programming language.
> I'm not after to make large program in this language (I think I'll be
> programming in an uglier languages like C++ and Java because there are
> more job offers there). I just want to learn powerful ideas so that
> when I'm forced to program in another language I can still use the
> ideas I've learned.
> 
> But which program should I choose? Lisp was created by McCarthy and has
> Church's lambda calculus as a root. As I understand McCarthy used an
> axiomatic approach when he created Lisp. This vouches for a clean,
> simple and pure design. On the other hand it's old and Scheme was
> created with the gained knowledge of Lisp and other ideas that came
> afterwards. I also heard that Scheme is cleaner and more simple than
> Lisp, but I do not know if that is so. Smalltalk is also a pure
> language building on ideas of Alan Kay who is highly respected.

There are tutorials available for all these languages. Read a few pages 
in those tutorials, and then pick the one that seems to fly best for you.

For Common Lisp, Practical Common Lisp by Peter Seibel, Successful Lisp 
by David Lamkins and Paradigms of Artificial Intelligence Programming by 
Peter Norvig are highly recommended. For Scheme, some books have already 
been mentioned. For Smalltalk, ask in comp.lang.smalltalk.

Note that it's a subjective choice, so you're the only one who can 
eventually decide what works best for you.


Pascal

-- 
My website: http://p-cos.net
Closer to MOP & ContextL:
http://common-lisp.net/project/closer/
From: Ulrich Hobelmann
Subject: Re: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <42c8c2F1htmbtU1@individual.net>
········@fastmail.fm wrote:
> Hi I would like some advice of which language to choose, Lisp, Scheme,
> Smalltalk or something else.

Since you ask this on c.l.l... ;)

> What I'm after are powerful programming ideas and I don't think I can
> learn them without them being expressed in some programming language.
> I'm not after to make large program in this language (I think I'll be
> programming in an uglier languages like C++ and Java because there are
> more job offers there). I just want to learn powerful ideas so that
> when I'm forced to program in another language I can still use the
> ideas I've learned.

If you learn a low-level language, you can try to emulate it in a 
higher-level one, but that's not really great.  If you learn a 
high-level one (like the three languages you mentioned), it might be 
hard to transport their programming style into another language, because 
they're either missing powerful features, or because they don't allow 
orthogonal composition of concepts or make arbitrary restrictions (like 
doing no tail call optimization).

As others mentioned, for concepts you could read one of the numerous 
Scheme books, or maybe the Peter Van Roy book 
(http://www2.info.ucl.ac.be/people/PVR/book.html).

> But which program should I choose? Lisp was created by McCarthy and has
> Church's lambda calculus as a root. As I understand McCarthy used an
> axiomatic approach when he created Lisp. This vouches for a clean,
> simple and pure design. On the other hand it's old and Scheme was
> created with the gained knowledge of Lisp and other ideas that came
> afterwards. I also heard that Scheme is cleaner and more simple than
> Lisp, but I do not know if that is so. Smalltalk is also a pure
> language building on ideas of Alan Kay who is highly respected.

IMHO Smalltalk is too much OO, but if you like that school, it's 
probably very nice to see how OO can be unlike Java & Co.  Scheme is a 
good conceptual language, but you need a good implementation to do 
anything useful (i.e. that implementation then has lots of features that 
aren't standard Scheme, so you are bound to that one implementation). 
Common Lisp is much more ugly, but also much more powerful, and not that 
ugly after all, once you're used to it.  I don't know any language that 
has all of CL's concepts, so it's very cool to learn it just for that 
reason.  Practical Common Lisp is a good intro book, and it's online for 
you to check out.  Also, CL has an object system that's not as fascistly 
OO as Smalltalk or Java, i.e. you can still have normal functions 
outside of classes for instance.

-- 
the bottom line is that a JavaSchool that won't teach C and won't teach
Scheme is not really teaching computer science, either.  --  Joel Spolsky
From: olczyk
Subject: Re: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <pan.2006.01.08.12.15.35.471814@yahoo.com>
On Sat, 07 Jan 2006 03:37:12 -0800, wildmind wrote:

> Hi I would like some advice of which language to choose, Lisp, Scheme,
> Smalltalk or something else.
> 
> What I'm after are powerful programming ideas and I don't think I can
> learn them without them being expressed in some programming language.
> I'm not after to make large program in this language (I think I'll be
> programming in an uglier languages like C++ and Java because there are
> more job offers there). I just want to learn powerful ideas so that
> when I'm forced to program in another language I can still use the
> ideas I've learned.
> 
> But which program should I choose? Lisp was created by McCarthy and has
> Church's lambda calculus as a root. As I understand McCarthy used an
> axiomatic approach when he created Lisp. This vouches for a clean,
> simple and pure design. On the other hand it's old and Scheme was
> created with the gained knowledge of Lisp and other ideas that came
> afterwards. I also heard that Scheme is cleaner and more simple than
> Lisp, but I do not know if that is so. Smalltalk is also a pure
> language building on ideas of Alan Kay who is highly respected.
> 
> Wild Mind
Smalltalk is well worth learning, but the environment will drive you crazy
if you are set in your ways. You have to
be in the ST environment to do work. So if you like for example to use vi
or emacs ... It's worse then the Microshit environments.

Perhaps Ruby which is like ST.

What I would do is ( assuming you have the bandwidth and disk space or can
burn discs ): download the Sussman
lectures
http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/

and the ADUni lectures
http://www.aduni.org/courses/sicp/

on SICP and go through those simultaneously.
From: Thomas F. Burdick
Subject: Re: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <xcv3bjylxmb.fsf@conquest.OCF.Berkeley.EDU>
olczyk <·············@yahoo.com> writes:

> Smalltalk is well worth learning, but the environment will drive you
> crazy if you are set in your ways. You have to be in the ST
> environment to do work. So if you like for example to use vi or
> emacs ...

... you should thank the Seaside developers:
http://www.cincomsmalltalk.com/userblogs/avi/blogView?entry=3303394043

-- 
           /|_     .-----------------------.                        
         ,'  .\  / | Free Mumia Abu-Jamal! |
     ,--'    _,'   | Abolish the racist    |
    /       /      | death penalty!        |
   (   -.  |       `-----------------------'
   |     ) |                               
  (`-.  '--.)                              
   `. )----'                               
From: Gareth McCaughan
Subject: Re: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <87y81qnc8i.fsf@g.mccaughan.ntlworld.com>
········@fastmail.fm writes:

> Hi I would like some advice of which language to choose, Lisp, Scheme,
> Smalltalk or something else.
> 
> What I'm after are powerful programming ideas and I don't think I can
> learn them without them being expressed in some programming language.

Learn them all. If you're going to omit one, I'd suggest
doing without Scheme: yes, it's small and beautiful, but
I can only think of one *idea* it has that isn't also
found in CL. (Admittedly, the idea -- "continuations" --
is a pretty big one, which you ought to get your head
around at some point.)

                         *

Just to clarify the history of Scheme and CL a little:
  - McCarthy designed a rather simple language which wasn't
    identical to either Scheme or CL;
  - that evolved into a variety of closely related languages,
    most of them with "Lisp" somewhere in their names;
  - Common Lisp was intended to be a worthy successor
    to pretty much all of them, which it is;
  - Scheme was created at about the same time as CL,
    as a language for research and teaching; as such
    it's much simpler than CL, which enough people like
    that it has survived along with CL.

(A few other languages in the Lisp family are still in
widespread use in particular communities, notably Emacs Lisp
and Autolisp, both of which are used for customizing big
hairy versatile applications. You don't need to look at
those if it's general programming concepts that you're
after.)

                         *

You should definitely look at some other languages too.
Stefan suggested Haskell and Oz or Prolog, and maybe Eiffel.
Those are all good suggestions. You should also, I think,
learn at least one assembly language. (Failing that, get
really good at low-level stuff in C.)

-- 
Gareth McCaughan
.sig under construc
From: Pascal Costanza
Subject: Re: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <42cfdjF1hn9r3U1@individual.net>
Gareth McCaughan wrote:

>   - Scheme was created at about the same time as CL,
>     as a language for research and teaching; as such
>     it's much simpler than CL, which enough people like
>     that it has survived along with CL.

That's not quite correct. Scheme started around 1975, whereas Common 
Lisp started in the beginning of the 80's. The first Common Lisp 
standard (CLtL by Guy Steele) was published in 1984. R2RS Scheme - the 
first Scheme that looks close to R5RS - was published in 1985.


Pascal

-- 
My website: http://p-cos.net
Closer to MOP & ContextL:
http://common-lisp.net/project/closer/
From: Gareth McCaughan
Subject: Re: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <87y81qjuro.fsf@g.mccaughan.ntlworld.com>
Pascal Costanza wrote:

> Gareth McCaughan wrote:
> 
>>   - Scheme was created at about the same time as CL,
>>     as a language for research and teaching; as such
>>     it's much simpler than CL, which enough people like
>>     that it has survived along with CL.
> 
> That's not quite correct. Scheme started around 1975, whereas Common
> Lisp started in the beginning of the 80's.

Oops. I thought I remembered reading (and being surprised to read)
that Scheme got started after CL was already somewhat formed,
though of course before ANSI CL was done. Apologies for spreading
misinformation.

-- 
Gareth McCaughan
.sig under construc
From: Thomas F. Burdick
Subject: Re: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <xcvu0cdkaay.fsf@conquest.OCF.Berkeley.EDU>
Gareth McCaughan <················@pobox.com> writes:

> ········@fastmail.fm writes:
> 
> > Hi I would like some advice of which language to choose, Lisp, Scheme,
> > Smalltalk or something else.
> > 
> > What I'm after are powerful programming ideas and I don't think I can
> > learn them without them being expressed in some programming language.
> 
> Learn them all. If you're going to omit one, I'd suggest
> doing without Scheme: yes, it's small and beautiful, but
> I can only think of one *idea* it has that isn't also
> found in CL. (Admittedly, the idea -- "continuations" --
> is a pretty big one, which you ought to get your head
> around at some point.)

Scheme isn't the only language with continuations.  Some Smalltalk
dialects (e.g. Squeak) have them, and the Seaside web framework makes
good use of them.

-- 
           /|_     .-----------------------.                        
         ,'  .\  / | Free Mumia Abu-Jamal! |
     ,--'    _,'   | Abolish the racist    |
    /       /      | death penalty!        |
   (   -.  |       `-----------------------'
   |     ) |                               
  (`-.  '--.)                              
   `. )----'                               
From: Pascal Costanza
Subject: Re: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <42esi2F1imc9lU1@individual.net>
Thomas F. Burdick wrote:
> Gareth McCaughan <················@pobox.com> writes:
> 
>>········@fastmail.fm writes:
>>
>>>Hi I would like some advice of which language to choose, Lisp, Scheme,
>>>Smalltalk or something else.
>>>
>>>What I'm after are powerful programming ideas and I don't think I can
>>>learn them without them being expressed in some programming language.
>>
>>Learn them all. If you're going to omit one, I'd suggest
>>doing without Scheme: yes, it's small and beautiful, but
>>I can only think of one *idea* it has that isn't also
>>found in CL. (Admittedly, the idea -- "continuations" --
>>is a pretty big one, which you ought to get your head
>>around at some point.) 
> 
> Scheme isn't the only language with continuations.  Some Smalltalk
> dialects (e.g. Squeak) have them, and the Seaside web framework makes
> good use of them.

IIRC, Avi Bryant said that he had to add continuations to Squeak, so it 
doesn't seem to me that Squeak already has them. Maybe this has changed. 
Implementing continuations in Squeak is relatively straightforward, 
though, because the current stack frames are available as a linked chain 
of first-class objects...


Pascal

-- 
My website: http://p-cos.net
Closer to MOP & ContextL:
http://common-lisp.net/project/closer/
From: Joe Marshall
Subject: Re: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <1136764673.163048.304740@g14g2000cwa.googlegroups.com>
········@fastmail.fm wrote:
> Hi I would like some advice of which language to choose, Lisp, Scheme,
> Smalltalk or something else.

I suggest you choose Lisp.  The name being only four characters long,
it will be much less painful to tattoo on your arm.

Or did you have some other purpose in mind?
From: Panos C. Lekkas
Subject: Re: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <vTaBf.663$yj6.244@fe03.lga>
"Joe Marshall" <··········@gmail.com> wrote in message 
·····························@g14g2000cwa.googlegroups.com...
>
> ········@fastmail.fm wrote:
>> Hi I would like some advice of which language to choose, Lisp, Scheme,
>> Smalltalk or something else.
>
> I suggest you choose Lisp.  The name being only four characters long,
> it will be much less painful to tattoo on your arm.
>
> Or did you have some other purpose in mind?
>

I would think that if that was his true motivation then he could have easily 
figured out that he is measurably better off going with C++ and save himself 
the pain of one extra character on his tattoo, not to mention that by 
induction he could finish with simply C.        :-)
From: Bruce Hoult
Subject: Re: Lisp, Scheme or Smalltalk
Date: 
Message-ID: <bruce-FA2934.21562208012006@news.clear.net.nz>
In article <························@f14g2000cwb.googlegroups.com>,
 ········@fastmail.fm wrote:

> Hi I would like some advice of which language to choose, Lisp, Scheme,
> Smalltalk or something else.
> 
> What I'm after are powerful programming ideas and I don't think I can
> learn them without them being expressed in some programming language.
> I'm not after to make large program in this language (I think I'll be
> programming in an uglier languages like C++ and Java because there are
> more job offers there). I just want to learn powerful ideas so that
> when I'm forced to program in another language I can still use the
> ideas I've learned.

If it's mainly ideas you're after then I think the choice is clear: 
Scheme.  Go and learn it, read _How to Design Programs_ and do the 
exercises.  Read _Structure and Interpretation of Computer Programs_ and 
do the exercises.  Read all the "_Lambda the Ultimate X_ (for X in 
imperative, declarative, GOTO, opcode) papers from the 1970's 
(http://library.readscheme.org/page1.html).

Get through that and you'll know a lot of very deep and intriguing stuff 
about programming.

-- 
Bruce |  41.1670S | \  spoken |          -+-
Hoult | 174.8263E | /\ here.  | ----------O----------