in reply to Re: Perl as one's first programming language
in thread Perl as one's first programming language

It makes Lisp and Scheme a lot more appealing, because the beginner learns a simple syntax in a short time, and that's all there is.

In my experience, people who think Lisp syntax is "simple" are either wizened gurus so lambda-hardened that they even speak in prefix notation, or have never actually tried to use Lisp.

Contrary to popular myth, Lisp has quite a lot of syntax. It just all looks the same. Sorry, but I don't know how anyone can think that

(defun foo (x y z) (bar (+ x y z)))

is easier for a beginner than e.g.

int foo(int x, int y, int z) { return bar(x + y + z); }

just because it uses exclusively parentheses and spaces, instead of distinguishing between different concepts by using different characters. You still have to remember where you're supposed to put the parentheses, and because it all looks the same, it's less obvious when you get it wrong. (Remember that we're talking about beginners here.)

And that's without getting into the bits of Lisp syntax that don't use exclusively parentheses and spaces. Quick, should it be (list 'foo 'bar) or '(list 'foo 'bar), or maybe even `(*list* 'foo 'bar)? Hmm, maybe it should have been ,@(list `foo `bar), or do I mean #A(:list #'foo #'bar)...? Sure, it's obvious to anyone who knows Lisp that most of those examples are nonsensical, but to a beginner it's, well, a bunch of confusing syntax. You know... that thing that Lisp allegedly doesn't have.