News for hackers. Stuff that matters.
Re:Real-World Concurrency (2008) by pron on Wednesday March 06, 2013 @06:14AM (#5330564)
Message passing is often insufficient without a centralized concurrent data structure (a database can serve that purpose). That is why Erlang has ETS (but that only guarantees isolation for single entity transactions), and Akka and Clojure have STM (and the Java concurrent data structures).
Re:Real-World Concurrency (2008) by swah on Wednesday March 06, 2013 @06:46AM (#5330641)
Is there something preventing people from writing correct, multi-threaded apps in Clojure (and kicking Python/Rubys asses)?
Re:Real-World Concurrency (2008) by FreezerburnV on Wednesday March 06, 2013 @10:30AM (#5331603)
Clojure actually has a lot of stuff in its design specifically for multithreading. Like the GP post said, Clojuer has Software Transactional Memory (STM) on top of immutable data structures to make messing up multithreaded programs hard, and you'd almost have to deliberately do so.

And yes, like another reply says, Clojure (and pretty much anything that's designed well and runs on the JVM) is much, much faster than Python/Ruby by default. A lot of this has to do with the JIT compiler that Java has been working on for a long time, which Python/Ruby don't have outside of an PyPy implementation. Also Python/Ruby don't have access to actual threads by default, because it has a global lock. They run everything basically in a single thread.

Re:Real-World Concurrency (2008) by swah on Monday March 11, 2013 @06:53AM (#5355928)
That is exactly my question. If Clojure has got great performance and great multithraeding support, why haven't it gained a greater share of the dynamic languages market?
Re:Real-World Concurrency (2008) by pron on Wednesday March 06, 2013 @08:16AM (#5330980)
No. Python/Ruby/Javascript don't even come close to JVM performance even without multi-threading, though.