Also, its common data types (lists, vectors, maps, sets) are immutable and use pointer sharing to make changes extremely cheap. This makes reads always safe and lock free, but performance guarantees are slightly worse- O(log32N) for vectors instead of O(1)- but still good enough that you probably won't care.
To me that's just as impressive and important as the STM, but I rarely see it mentioned.
To me that's just as impressive and important as the STM, but I rarely see it mentioned.