On Wed, Jul 31, 2013 at 2:23 AM, Jonathan S. Shapiro <[email protected]>wrote:
> On Mon, Jul 29, 2013 at 10:41 PM, David Jeske <[email protected]> wrote: > >> stop-the-world GC is an achilles heel >> V8 lack of support for concurrent shared data is an achilles heel >> Rust's lack of concurrent data (I think because of the mechanics of owned >> pointers) is an achilles heel >> > > V8 lack of support for types is, in my view, a more basic achilles heel. > > Concerning support for concurrent data and concurrency, this was an > Achilles heel of BitC as well. I definitely recognize the importance, and > you know that I put some work into typing immutability. That said, I > haven't seen a language-level concurrency model that seems universal enough > to be the "right" concurrency model to bless into the language. This is, > admittedly, a failing. It seems that any choice will polarize the user > base, and I don't feel that I understand the issues well enough to make a > good choice on this. > > There seem to be 4 common models of parralelism people are using 1) Launch tasks from a procedural main thread. 2) Ignore it just duplicate and fork whole app and lock where there is contention 3) Fully async node js style with call backs 4) Use threads just to offload IO , and use single thread message pumped services for high cache hits. It difers from 1 in the fact that there is no main loop and communication between services is async. 1 and 2 are in my opinion fading ..and wont scale to higher core counts 3) Is interesting as nodejs is very fast and is javascript. 4) seems to be comming back ( eg disruptor pattern) it is used in most GUIs for a long time. And has the huge advantage of services being single threaded ...and still competative in performance and scaling. Neither 3 and 4 need a lot from a language ..though they do need changes to the runtime library and users are begining to use them more and more with asyncronous web APIs MVC async controller etc . You mentioned you dont want to address how people program but that is really unavoidable when you consider concurrency , and this is evolving. eg C# extentions directly push people to style 1 programming .
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
