Ich habe über die Bibliotheken gelesen, die für Sprachen wie Java und C # geschrieben wurden, die das Weben von Bytecode verwenden, um beispielsweise Funktionsaufrufe abzufangen, Protokollcode einzufügen usw. Ich habe auch über Lisp / Clojure-Makros in einem gelesen versuchen Sie besser zu verstehen, wie man sie benutzt. Je mehr ich über Makros lese, desto mehr scheint es, dass sie die gleiche Funktionalität bieten wie Bytecode-Webbibliotheken. Mit Funktionalität meine ich die Fähigkeit, Code zur Kompilierungszeit zu manipulieren.
Beispiele für Bibliotheken, die ich mir angesehen habe, sind AspectJ, PostSharp und Cecil.
Gibt es etwas, das mit dem einen und nicht mit dem anderen gemacht werden kann? Lösen sie tatsächlich die gleichen Probleme oder vergleiche ich Äpfel und Orangen?