Java, Scala, Functional Programming, Concurrency, Macro.
immutable data structures-if you need to use a Set, a List, or Map, you'll get an immutable version by default. Finally, most Scala libraries out there consume and produce immutable data structures. It’s simply the way of handling data in Scala. Of course, you can still use mutable data structures