It's the same kind of superior smugness you get
from Lisp zealots,
Zealots will be zealots.
[...], despite the fact that [Lisp] has yet to
actually produce any
AI of note despite having been around for 56 years.
I disagree, except for definitions of "AI" for which it's a tautology.
(There's a tendency I've noticed in myself to act as though "real" AI
is always the stuff that hasn't been done; once it's done it's just
algorithms, not AI.)
As a simple example, back in the '80s someone I knew wrote a Rubik's
Cube solver that developed its own macros. I'd call that AI. He wrote
in Lisp, and IMO with good reason.
Incidentally, "homoiconicity" just means
that they wrote the language
back-end and then knocked off without bothering with the front-end,
so you have to enter your program as a raw AST instead.
Careful. Not only is this statement wrong, it comes awfully close to
exhibiting zealotry of your own. (If you don't understand why or how
it's wrong, I refer you to the Wikipedia page "Homoiconicity".)
The apologists claim that the lack of a front-end is a
feature
because it makes macros easier to write.
That _is_ one of the respects in which it is a feature, but it's hardly
the only one.
That real programs use macros rarely or not at all,
but do contain a
lot of arithmetic that would benefit from being presented in a more
conventional form, has apparently passed them by.
Oddly enough, you are not alone in noticing this weakness of Lisp. The
most "serious" (FWVO...) Lisp I used had a syntax for entering
arithmetic in traditional infix notation. Using @ as the marker
character (it was actually a diamond-shaped thingy), you could write,
for example, @(len*3)+slop@ instead of (+ (* len 3) slop).
As for this passing people by, well, zealots will be zealots; you can
tell a zealot, but you can't tell one much.
And as for the statement itself? It exhibits a remarkable blind spot,
in that it dismisses as non-"real" programs that do symbolic, rather
than numerical, computation - such as the Macsyma someone mentioned.
Such software can hardly be written without building up a
domain-specific language for the task, and, in Lisp, a great deal of
that will generally be done with macros. (There are also macros that
casual users may not realize are macros, such as setf.)
/~\ The ASCII Mouse
\ / Ribbon Campaign
X Against HTML mouse at
rodents-montreal.org
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B