Immutability in Clojure, Ruby, Javascript and Python

This talk surveys the current state of immutable data in Ruby, JavaScript and Python, comparing and contrasting it to Clojure. Following the rise of Clojure, many of us have become aware of the idea of immutable data structures and their benefits.

In Clojure, all built-in data structures are immutable, and the same also applies to everything we build out of them. This has profound effects on how programs are constructed and transforms the way we can reason about them, test them, compose them, and drop them into concurrent environments. But what is the immutability story in Ruby, JavaScript, and Python? Is immutability just a Clojure or a functional thing, or does it apply to the type of OO programs we build with these other languages? If we do want to utilize immutable data in Ruby, JavaScript, or Python, how should we go about it? What built-in data structures can we use and what should we stay away from? What libraries are there to help us? How should we construct our programs – in the small and in the large?

Video producer: