LISP's macros are extremely powerful constructs, and the inability to introspect and modify the program itself beyond the method signature level has always struck me as a limitation. Yet I favour "complex" syntax because it tends to be closer to natural language.
So far I have failed to find a language which combines a powerful macro mechanism such as LISP's with a naturally looking syntax (1). Is anyone aware of such a language?
- I would consider python to have a naturally looking syntax as it allows constructs like this:
if 0 < a < 5 and b in list. The avoidance of braces to structure blocks is irrelevant in this case, though.