Java, Scala, Functional Programming, Concurrency, Macro.
change, code is easier to understand; that’s also called local reasoning resiliency to data corruption as concurrent data modification is not possible greater thread-safety and simpler concurrent programming in general Other programming platforms share the preference for immutable data structures