Option #1 and #3 are very much the same, just that Option #3 creates a Java
layer on top, instead of having everything coupled to the Clojure Java APIs
directly.
When you go with Option #2, you do not have to AOT everything, but AOT is
transitive. So as you AOT the gen class, all code it requir
Don't get me wrong, I'm as much against types as the next R̶i̶c̶h̶
̶H̶i̶c̶k̶e̶y̶ guy.
However -- there are many popular Java frameworks that love to reflect on
their annotations and their generic type signatures.
To name a heavyweight: Spring. But also, of late: big data frameworks, many
writ
Depends on what you seek an example of. The cfj interop example provides
1-line Clojure implementations of the features the Java program consumes,
and 1 line is plenty to demonstrate the interop. On the other hand, those
1-liners are not an example of significant work you'd much rather do in