J'ai lu sur les bibliothèques que les gens ont écrites pour des langages comme Java et C # qui utilisent le tissage de code octet pour faire des choses comme intercepter des appels de fonction, insérer du code de journalisation, etc. J'ai également lu des macros Lisp / Clojure dans un essayer de mieux comprendre comment les utiliser. Plus je lis sur les macros, plus il semble qu'elles fournissent le même type de fonctionnalités que les bibliothèques de tissage de code d'octets. Par fonctionnalité, j'entends la possibilité de manipuler du code au moment de la compilation.
Des exemples de bibliothèques que j'ai examinées seraient AspectJ, PostSharp et Cecil.
Peut-on faire quoi que ce soit avec l'un et pas avec l'autre? Résolvent-ils réellement les mêmes problèmes ou est-ce que je compare des pommes et des oranges?