Converge (Python-like language with macro-like facilities) 1.0 released
convergepl.org
convergepl.org
It's partly a matter of syntax - frankly, I can't deal with Lisp's syntactic minimalism (my problem, maybe, but there's a lot of other people like me). So there's an immediate argument for adding at least Lisp-like macros to a syntactically rich language (a task which, historically, has proved very difficult).
It's also, as suggested by henning, because there is more to meta-programming than just Lisp-esque macros.
Not all macro systems are Lisp macro systems? Languages may have interesting features other than macro systems? Library support may be cleverly piggybacked in from an existing language? (see C -> C++)
Also, I haven't looked too deeply into it, but my assumption is that classes in Converge are implemented similarly to Python.
They've borrowed a bunch of ideas it seems, but aside from multi-line lambdas and the "macro" facility, they seem to have changed syntax for the worse. ':=' for assignment, using what have become standard bitwise operators for logical or and logical and--those types of things turn me off right away.
It doesn't seem sensible to me to imply that every programming language has to have the same syntax as what came before it: no syntax is perfect and future generations won't thank us if we don't improve things when we can. Using "=" confuses new-comers to programming who think it's some form of comparison thingy. Converge doesn't have logical "or" and "and", so the & and | operators (taken syntactically and semantically) are there to point that out (although, in general, they operate in analogous fashion to "and" and "or"). In this day and age, having special syntax for bitwise operators seems odd: they're so rarely used that moving them to functions / methods and reclaiming & and | for other purposes seems reasonable.
Converge is a full meta-circular system (based on ObjVLisp), and at the VM level is actually prototyping based (the VM doesn't really know about classes). So classes seem superficially similar to Python but are actually quite different. You can see this as new objects are created via Object.new() rather than the Python-esque Object(). The object system in Converge is simpler and more consistent than Python.
Ah! That's interesting.
My impression of Boo is that its macros are a very different kettle of fish to Converge's compile-time meta-programming. Boo seems much more similar to Nemerle than Converge. As far as I can tell, there's no quasi-quoting (which would mean building ASTs by hand all the time) and no support for things like hygiene. I'd be happy to be corrected though.