Java, Scala, Functional Programming, Concurrency, Macro.
reflection-based code generation, guided by annotations, is still predominant in the Java ecosystem, there are signs that it’s also moving toward compile-time generation. Hibernate’s metamodel is one example (it uses annotation processors). However, the low expressiveness of annotations as a