[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bindings and assignments (was: Re: continuations)

> I agree that saying "people who don't use lisp are stupid" is, well,
> stupid.  For one thing, I can well understand someone preferring the more
> statically-typed world view of java to the more dynamically-typed world
> view of lisp.  What bothers me is when people take one look at lisp, go
> "oh, no, look at all those parentheses!" and run screaming.  Yes, these
> perhaps social issues, but it's surprising how much of peoples'
> are based on what to me are very superficial issues like this.  Then these
> superficial issues prevent many people from ever delving any further into
> the language; they just write it off immediately.  Often they will also
> come up with a post-hoc justification for their attitude e.g. "oh well,
> lisp is really slow, and it's just an AI language, so it's obviously not
> the tool for the job".  What they really mean is that they thought it was
> icky.

Lispy parenthesis can seem silly. Learning Scheme as a first language seems
like the one way Lisp-like languages will ever seen greater adoption. At
Uni, I started with Pascal, then Modula-2 - only then did we see Scheme
(PC-Scheme), C, Assembler and others. Quality of education makes a big
difference. We didn't focus on Scheme, it was just part of some other
subject ("prac" I think). We weren't encouraged to admire the consistency of
expression, or taught about macros or closures (and certainly not call/cc).
We weren't taught how to design scheme programs. We weren't told about SICP
:-(. Boo hoo!!

I've come back to Scheme and Lisp through an interest in programming
languages. I started my journey with Python, then to very briefly to
Haskell, briefly to OCaml and ML and then to Dylan, Scheme/Common-Lisp. I'm
still an amateur but I've done a bit of Scheme programming. The parenthesis
are no longer scary. They are still a bit silly (because the compiler/reader
could close them all off for you) and "dot/path notation" is very
convenient. I still find that I prefer to have more "markers" in the code to
delimit expression from each other - as in "if x a else b" rather than "(if
x a b)" (usually nicely indented). Also, dynamic typing is ok but when I
mistype a variable I want to be told at compile/read time about that. This
attitude is probably due to years of knocking out code in the C family and a
lack of focus and brain cells :-).

A good comprimise of features seems to be Ruby. It gets far less attention
than it deserves and works well for those of us who are still parenthically

> Maybe what I'm really saying is that I don't understand why people have
> such a hard time with different syntaxes ;-)

I hear ya.