3 ms·
Great footnote. I'm undecided if I should tackle Clojure or Erlang next. Each one is excellent and interesting in its own way. > A lot of writeups repeat a "ni
by sjs 17y ago
Great footnote. I'm undecided if I should tackle Clojure or Erlang next. Each one is excellent and interesting in its own way.
> A lot of writeups repeat a "nine nines", ie 99.9999999% reliability claim for Erlang-based Ericsson telephone switches owned by British Telecoms. This works out to 31 milliseconds of downtime per year, which hovers near the edge of measurability, not to say plausibility. I was present at a talk Armstrong gave in early 2010 during which he was asked about this. There was a little foot shuffling as he qualified it: it was actually 6 or so seconds of downtime in one device during a code update. Since BT had X devices over Y years, they calculated it as 31ms of average downtime per device per year. Or something like that. Either way it's an impressive feat.
- gtani 17y agowhat's up with - erlang: R14 and somehting like Memory management threads http://groups.google.com/group/ceug/browse_frm/thread/28375bca0277a16b http://groups.google.com/group/ceug/browse_frm/thread/28375b... - scala: lots: Akka, scalaz, lift threads, STM, Bagwell's data structures - clojure: special purpose mutability: transients will be old hat, Hickey's working on "cells", (lately he's been coding reify/deftype/defrecord) - F#: lots, I haven't been tracking, and i just saw the cheapest Vis studio 2010 is $800(?!) - haskell (GHC) CHP's, STM, lots other stuff (Suppose i oughter blog about)
- gtani 17y agoOK, let me try to be more helpful. Here's good backgrounders http://www.tbray.org/ongoing/What/Technology/Concurrency/ http://www.tbray.org/ongoing/What/Technology/Concurrency/ http://www.sauria.com/blog/2009/10/05/the-cambrian-period-of-concurrency/ http://www.sauria.com/blog/2009/10/05/the-cambrian-period-of... http://groups.google.com/group/clojure/browse_thread/thread/5c7a962cc72c1fe7?hl=en http://groups.google.com/group/clojure/browse_thread/thread/... http://blogs.azulsystems.com/cliff/2008/09/jvm-language-su.html http://blogs.azulsystems.com/cliff/2008/09/jvm-language-su.h... http://wiki.jvmlangsummit.com/pdf/36_Click_fastbcs.pdf http://wiki.jvmlangsummit.com/pdf/36_Click_fastbcs.pdf --------------------- also recommended: Herlihy/Shavit book, blogs by Sutter and Duffy, http://www.amazon.com/Art-Multiprocessor-Programming-Maurice-Herlihy/dp/0123705916 http://www.amazon.com/Art-Multiprocessor-Programming-Maurice... http://herbsutter.com/ http://herbsutter.com/ http://www.bluebytesoftware.com/blog/Default.aspx http://www.bluebytesoftware.com/blog/Default.aspx
- aristus 17y agoHey -- very good questions. This article was a broad overview, and I wanted to get across the fundamental "physics" of concurrency more than specific solutions. Where I talked about solutions it was to illustrate how those principles operate. I'm also not actually that knowledgeable about concurrency so I didn't want to say anything stupid. :D I'm more journalist than expert. I've gotten many responses like yours, though. This subject probably deserves another round of research and a follow-on article or two. Thanks!
- evgen 17y agoHaving done a lot of Erlang I am toying with Clojure at the moment. So far it is looking like a tool I will pull out for "big data" tasks, but I am having a real hard time resisting the urge to drop back into Erlang for big concurrency tasks. Right now my take on the two languages is that Clojure's sweet spot is as a more elegant way to take advantage of Java's SMP advantages but Erlang still wins for systems distributed across a large number of nodes (in this case it is OTP providing the win and not anything specific in Erlang that Clojure lacks, but this framework is still the best and most battle-tested thing out there for many-node systems...)