Czytałem o bibliotekach napisanych przez ludzi dla języków takich jak Java i C #, które wykorzystują tkanie kodu bajtowego do robienia rzeczy takich jak przechwytywanie wywołań funkcji, wstawianie kodu rejestrującego itp. Czytałem również o makrach Lisp / Clojure w spróbuj lepiej zrozumieć, jak z nich korzystać. Im więcej czytam o makrach, tym bardziej wydaje się, że zapewniają one taką samą funkcjonalność jak biblioteki tkania kodu bajtowego. Przez funkcjonalność rozumiem możliwość manipulowania kodem w czasie kompilacji.
Przykładami bibliotek, na które patrzyłem, byłyby AspectJ, PostSharp i Cecil.
Czy jest coś, co można zrobić z jednym, a nie drugim? Czy faktycznie rozwiązują te same problemy, czy też porównuję jabłka i pomarańcze?