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

Reply via email to