Java, Scala, Functional Programming, Concurrency, Macro.
class fields which are vals (not vars) by default, enums (in Scala 3), and ADTs (sealed families of classes). Another important aspect is the ease of creating modified data structures using the auto-generated copy methods. But maybe even more importantly, the standard library is built around