Hello, I'm the author.
Clojure has some limited support for Java annotations, it's just that support is a bit ungainly, and that introduces enough difficulty that it leads to frameworks like Quarkus having no real adoption in the Clojure community.
Quarkus also relies on byte-code rewriting which may also cause difficulty for Clojure, but that's an aside.
Better annotations support wouldn't necessarily improve the ease of annotation-driven web frameworks in Clojure because the issue is more fundamental than that.
The real problem for Clojure is, from the original article:
> It's because in Jakarte EE 11 Context and Dependency Injection (CDI) officially becomes the single, unified component model across the entire enterprise Java ecosystem ... CDI is entirely driven by annotations, and annontations are entirely not Clojurish.
What I mean here specifically is CDI is the 'blessed' solution for DI in Java, CDI is clearly derived from many years of innovation by Spring, other DI frameworks in Java. Annotations is the path forward.
That means DI in Java is driven at a code-oriented, not data-oriented. Code-oriented is more natural in Java, and to give you a counterpoint, when I first worked with Spring (and very briefly with Rod Johnson for a couple of weeks on a client engagement, boring story) it was possible to configure Spring in XML.
Spring XML would be the equivalent of data-oriented in Java. Nobody in Java wants to do that, they want annotations instead.
In the article I say:
> configuring systems in code is a pale imitation of configuring systems in data. I much prefer my data-oriented system config library in Clojure to annotations in Java.
As it turns out I wrote something on reddit about this recently, you can find that here:
https://www.reddit.com/r/Clojure/comments/1vm668q/comment/p3...
Sorry for quoting myself and links back to reddit, feels a bit odd.
The point is - when you start configuring things in code, you are leaning into Java objects and/or code-level constructs for dependency injection, rather than the frankly far better approach in Clojure of using the wonderful Integrant library which relies on Clojure datastructures:
https://github.com/weavejester/integrant
And then of-course Slipway, which is also entirely Clojure maps.
If you are using annotations to configure your web server, you are better to write your webserver code in Java and have the server handlers call out to Clojure at the handler level. It inverts your entire codebase back into 'Java is in charge, clojure is an adjunct to that'.