Basically Julia is a lisp, if you look at metaprogramming for a description. Basically, code afaics consists of Expr objects. It takes a little getting used to, but it can basically do arbitrary stuff.(And arbitrarilly bad too as we know, but competence is up to the developer.) For illustration, below a macro:

What do you guys think? I think this is pretty promising.(but early) It does seem to have quirks, i am gathering them as i use it a bit. I also made a wiki page, and trying to get something functionally similar to destructuring-regex in.(edit: i should probably improve that package) They seem to have made little inroads into macros, but of course those aren't always best, and using them a lot hides stuff from the compiler. For the devs right now, at later point it can be copied and altered to make switching from CL easier.(Though it is easy already.)