STM is useful even if you have good threading support. You could easily build a STM library for Java or C#, and there are some, but without syntax support it's pretty cumbersome to use.
Clojure has good STM support because it's easy to add the necessary primitives to a Lisp.
Comments
Java and C# don't have a GIL though, and have good support for threading right?
Linked list for single processor is a job for first year student.
Linked list for multiprocessors with mutexes and locks is a PhD-level job.
Linked list for multiprocessors with STM is a job for first year student again.
The quote is from one of Simon Peyton-Jones talks.
Thanks - that quote immediately shifted my thinking.
STM is useful even if you have good threading support. You could easily build a STM library for Java or C#, and there are some, but without syntax support it's pretty cumbersome to use.
Clojure has good STM support because it's easy to add the necessary primitives to a Lisp.
Precisely. :)
STM's advantages are not so much in -enabling- threading, but instead allowing for new paradigms (possibly simpler ones).