AOP IMHO - это просто артефакт некоторых видов статических языков программирования.AFAIKS - это обычно просто набор нестандартных расширений компилятора.Я еще не видел ни одного приложения AOP, которое не может быть лучше и лучше решено в более динамичных языках.Clojure, безусловно, достаточно динамичен, и это даже без учета макросов.
Я могу ошибаться, но если это так, мне нужно увидеть фактический вариант использования AOP, который не может быть реализован так же хорошо в чистом видеclojure.
Редактировать: просто для ясности: я отказываюсь рассматривать такие вещи, как советы Элиспа, как аспектно-ориентированные.В динамических языках это просто методы, которые нужно использовать всякий раз, когда они вам нужны, без необходимости поддержки языка, кроме перепривязки определений функций, которые все равно поддерживаются всеми лиспами.
Нет необходимости рассматривать их как особые - вы можете легко определить свою собственную функцию, подобную defadvice, в clojure.Смотрите, например, compojure's wrap!макрос , который на самом деле устарел, так как он вам вообще не нужен.