Overview
Explore the importance and implementation of immutability in Scala programming through this comprehensive 50-minute conference talk from Scala Days Copenhagen 2017. Dive into the advantages of functional programming with immutable data, examining its role in fault tolerance for systems like Apache Spark and safe message exchange in Akka. Investigate the challenges of Scala's type system lacking a built-in notion of immutability for type definitions. Discover the findings of an empirical study on immutability usage in open-source Scala projects, including the standard library. Learn about shallow and deep immutability, and understand common reasons why type definitions remain mutable. Get introduced to the scala-immutability-plugin for the Scala compiler, enabling you to gather immutability statistics in your own projects. Cover topics such as referential transparency, immutability constraints, limitations, and various declaration types, concluding with a detailed analysis of mutable templates and shallow immutability.
Syllabus
Introduction
Why is immutability important
What is referential transparency
Immutability in Scala
Examples
Constraints
Issues
Limitations
Types of immutability
Questions
Results
Summary
Declarations
mutable templates
shallow immutability
more details
conclusion
Taught by
Scala Days Conferences