Derisive comments are often made about the syntax of Lisp,
as witness some reproaches on
my previous blog entry.
Thus the half-joking, half-serious backronym of
Lots of (Insipid | Irritating | Infuriating | Idiotic | ...)
and (Spurious | Stubborn | Superfluous | Silly | ...) Parenthesesand accusations that Lisp syntax would make
(
Read more... )
Comments 22
You are making two assumptions: 1) that this is a foreighn culture, and 2) that this is all a matter of psychological hang-ups of the "mainstream" programmers.
Well, 1) is basically an accusation in being uneducated, or simply unable to comprehend the obvious superiority of your preferred approach. Well, you are making very unwarranted assumptions about your opponents. I am a specialist in programming languages (among other things), wrote some compliers and interpreters, and consider myself rather familiar with LISP and its numerous progeny (Planner, Schema, etc). I would reiterate that any person with university CS education was exposed to LISP, and had a fair chance to learn how to use it. In any case, I do not think that this is an argument which is suitable for a civilized discussion ( ... )
Reply
Even that only evades the issue. Because why has hundreds of years of mathematics evolved a sub-optimal method of expression? In fact, we might well ask why (all? most? many?) natural languages are complex context-sensitive beasts. Are we merely at the mercy of the very first grammarian, or is their something in our primitive brain which is wired to be more receptive to complex grammars?
Reply
(2) Grammars are not complex, but big. That is, each rule is simple, but there are lots of rules. A massively parallel brain can cope with that. That is, as long as it has to deal with similar stuff.
(3) Programming is different from the usual stuff. Semantics is part of programming, and it's part of what any programmer must master so as to write decent programs. Some languages make it easier to discuss semantics than others.
(4) Lisp doesn't prevent from learning lots of rules. Actually, in Common Lisp (as opposed to say Scheme), there is a tremendous lot of rules. But these rules are in the semantics, not in the syntax. So that the programmer will focus on what matters rather than be diverted in details.
Reply
2) The human brain is massively parallel. And it has the benefit of some billions years of evolution in dealing with large detailed spatial environments. Which do not have any recursion to speak of, are not regular or repetitive, and cannot be combined in any meaningful way. The most important thing is to recognize them by multitude of visual, aural, olfactory or tactile cues - and so not to get lost ( ... )
Reply
Many of us have actually forgotten LISP (heh, I wrote some stuff in in for BESM-6 when I played with language transforms in the university). Pascal and LOGO, too. It is not new, by any means. No doubt, C is a glorified assembler, C++ is ugly and sometimes infuriating, and Java is a fascist's wet dream, but somehow they're still the most practical tools for doing things like operating systems, object request brokers, databases, routing software or (oh, horror) business apps. I wish it could be better, as there is clearly a lot of room for improvement (my pet peeve is that Algol-68 was undeservedly forgotten - it had lots of interesting ideas in it, some of which found their way into variety of languages; and, besides, I worked on a A-68 compiler project, which makes me impartial :) However, insisting that ( ... )
Reply
Reply
(let ((a 1) (b (+a 1 2) (c 3))
(if (= a 1)
(setq c 2) (progn
Reply
Reply
http://www.dwheeler.com/readable/
Reply
(let ((a 1)
(b (+a 1 2)) <- This will fail
(c 3))
You could however use let* for that kind of thing.
Reply
Leave a comment