lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Thu, Feb 28, 2008 at 2:37 PM, Miles Bader <miles.bader@necel.com> wrote:
The usual tone when talking about the CL loop macro seems to be derision

Indeed :) Actually, my reference tried to be derisive as well. Loop is a caricature of what's IMO Lisp's original sin: the design principle that everyone should hack the syntax in every directions for every purposes. Granted, official coding policies state that macros shouldn't be created gratuitously, but lispers tend to have a pretty restrictive understanding of "gratuitousness"...

What makes loop suck are:
As restated every time a syntax extension discussion occurs, syntax plasticity comes at a price in terms of modularity and reusability. Lisp chooses to bet everything on plasticity, whereas most other languages go to the other extreme with completely fixed syntax. The trend with metalua, converge, linq, template haskell, perl6 etc. is to seek a compromise between these extremes: get as much additional power as possible while minimizing the software engineering impact (I'm not implying that all of these languages/dialects will succeed in their endeavor).

There's also an alternative approach, lead by Rubyists, which consists into building DSLs with runtime semantics, but these DSLs aren't fundamentally simpler to write, learn and integrate together than static ones IMO.

-- Fabien.