News for hackers. Stuff that matters.
Re:How innovative is Clojure as a Lisp dialect from Lisp exp... by kccqzy on Sunday January 06, 2019 @06:43PM (#18841534)
I think Clojure is certainly innovative in that it includes software transactional memory in its core language. Scheme doesn't, Common Lisp doesn't, and perhaps most other lisps do not. It's not very often used, but it's a welcome addition to the core language.
Re:How innovative is Clojure as a Lisp dialect from Lisp exp... by bad_user on Monday January 07, 2019 @03:02AM (#18843568)
STM has nondeterministic performance characteristics and doesn’t live up to expectations.
Re:How innovative is Clojure as a Lisp dialect from Lisp exp... by kccqzy on Monday January 07, 2019 @04:08AM (#18843833)
STM is indeed non-deterministic in performance, but non-determinism is basically a given in all concurrency problems.

In the same vein you can also say locks have non-deterministic performance characteristics: I never know how long I'm going to wait when I'm trying to acquire the lock! In other MVCC scenarios such as databases you also don't know whether your final COMMIT will fail due to concurrent writes and you have to retry.

Furthermore Clojure's STM in fact has an extra primitive called commute that is not present in Haskell's STM. It makes commutative changes even faster.

Re:How innovative is Clojure as a Lisp dialect from Lisp exp... by StreamBright on Monday January 07, 2019 @03:11AM (#18843615)
Can you elaborate? I have used it successfully in many projects. People keep saying it has bad performance but I haven't seen any proof yet.
Re:How innovative is Clojure as a Lisp dialect from Lisp exp... by TeMPOraL on Monday January 07, 2019 @07:36AM (#18844680)
"Nondeterministic" doesn't mean "bad", just that things can be OK until suddenly they aren't, and you can't really predict it a priori.
Re:How innovative is Clojure as a Lisp dialect from Lisp exp... by lincpa on Monday January 07, 2019 @05:56AM (#18844266)
MVCC with the same principle as STM has been widely used by RMDB.