From: conrad
Subject: Re: Why I'm giving up on Lisp for now
Date: 
Message-ID: <cb2q1v$k9p@odak26.prod.google.com>
> The first reason is that I just can't seem to fluently write Lisp
code.

In my case, this turned out to be because thinking in a "functional
programming" manner, which can make lisp a more pleasant experience,
takes some effort. I might recommend playing with haskell, which really
made me "get" functional programming through its rigorous treatment of
side effects. Also, the "little schemer" book helps with this.

> My macros almost never work first time

This is definitely an issue. However, I found I wrote far fewer macros
the more I used lisp- macros are really a "big gun" that is only worth
using when the syntactic benefit they provide are large enough to
justify them- I have to avoid the urge to create a macro every time I
see a place where a macro could save me a symbol or two in my syntax.

> Loops seem clumsy and unintuitive.

Again, an FP approach to the code allieviates this issue a lot (no
loops at all!)

> The second reason is the "hostility" of the Emacs/Slime/CMUCL
environment

This is another issue, for sure- I think a lot of the tools for lisp
tend to be close to the metal and developer-oriented (in the sense that
the design of SLIME/CMUCL/etc tends to be set up to meet the needs of
the deveopers of the tools, who understand the cryptic error messages)
This isn't really a bad thing, necessarily, but I think it is a
reflection of the smaller size of the developer community of lisp
tools, compared to java/c/python/etc. I think it's great that we have
the wonderful tools that *do* exist, with all of the various lisp
environments and other tools.  However, it may take a while before lisp
developers of sufficient skill can look at the lisp
environments/tools/libraries and say "boy, these tools are so complete,
I think I'm just gonna work to make these super easy to use for
non-experts"- Although some work in this area is definitely happening
(like the talk of a ciCLe CD.)

KanZen wrote:
> Over the last few months I've made an effort to learn Common Lisp,
and
> it has certainly been interesting. I got past the parantheses, and
the
> 30 years of industrial grime that overlays the pure language core
> (getf nothing to do with setf? (elt list index) but (nth index list)?
> trying to remember when I need parans or double parans for various
> special forms etc.) I even got past setting up Lisp with Emacs
(thanks
> to Slime, I never got ILisp working properly despite the large number
> of pages I could find with Google). I've been playing around with
> CMUCL/Slime/Emacs on Linux trying things out, writing sample programs
> and so on.
>
> But I've decided it's just not for me, and here's why. The first
> reason is that I just can't seem to fluently write Lisp code. Every
> line is a bit of a struggle, whereas with Python it seems I can just
> get working code almost as quickly as I can type. My macros almost
> never work first time, and I have to experiment with quotes,
> backquotes, commas etc. to get what I want. Loops seem clumsy and
> unintuitive.
>
> The second reason is the "hostility" of the Emacs/Slime/CMUCL
> environment. When something goes wrong in Python I can usually figure
> it out right away. In Lisp I almost always up in a stack trace with
> totally cryptic entries, and it's so much harder to figure out the
> problem. I'd like to just see a simple stack trace that clearly
> indicates what is happening, but it doesn't seem to work out that way
> in practice. This in particular seems such a pity, especially as
there
> are many things about Slime that I like.
>
> Well, I'm glad I gave it a crack (I learned a lot in the process).
But
> I think Python is the language of choice for me now (my day job is
> Java/J2EE). But it does bring a wry smile to see all of the hoopla
> around a slightly new loop syntax for Java 1.5 coming through after
> several years compared to a quick Lisp macro.
> 
> Maybe I'll come back to Lisp one day.
> 
> KanZen