Java, Scala, Functional Programming, Concurrency, Macro.
code generation is more efficient, secure, and predictable compared to run-time annotation processing. Finally, being explicit as to what happens when and why in your code increases the explorability and understandability of our codebases, even when it’s necessary to navigate library-provided