Alex Baranosky <alexander.barano...@gmail.com> writes:

> Julian,
>
> I saw no flames fired from Craig - and I am particularly intrigued by non-Lisp
> languages such as Ioke that are homoiconic and have macros.

I meant my comment as a pre-emptive joke to derail a replaying of the
old tale of Dylan, the lisp with infix syntax.  c.l.l archives are
available if people want to see very long discussions of it.  I actually
sense that the clojure community is over that kind of inferiority
complex about syntax and parens.

Formal homoiconicity is not sufficient IMO, when the goal is the ability
to construct new code easily.  In short, I think it's code as data, and
that data being easily composed and transformed.  That ease with lisps,
IMO, comes from the nature of lists of atoms, and the support for
controlling the time of evaluation for subelements -- meaning the ` and
, and @ operators.  It's useful in alot more places than just macros
too.

I do alot of Ruby, and use class|instance_eval %{ ... } quite a bit for
metaprogramming.  Ruby is not homoiconic, but I find the %{ ... } syntax
sufficient for most of my needs, but quite brittle and subject to alot
of trial and error to figure out just how it's going to interpret a
generated token.  And of course, string/token interpolation is nowhere
near as powerful as programmatically generating lists -- even if many
macros examples are just interpolating atoms into quoted lists).  

Hmm, perhaps this tells you just how unsophisticated my Ruby
metaprogramming is, heh.

I've yet to fully grok Clojure namespaces, and its reader's design
decisions, so I can't comment on reader macros other than I initially
missed them.  I grew fond of them after using some in UncommonSQL for
the embedded SQL syntax.  However, managing the reader-table, and which
reader macros where active or needed at a given time, was rather
informal and prone to confusion.  The win of some syntactic brevity is
not that big a deal.

-- 
Craig Brozefsky <cr...@red-bean.com>
Premature reification is the root of all evil

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to