retard wrote:
My point was, what makes D community members more capable of reasoning about these issues.

Nothing. What makes D special, though, is better language support for sound concurrent programming. But you'll still need a mental model of what's going on, just like you cannot program very successfully in C if you have no mental model of what a pointer is.

I bet it's obvious to the top 30 C++ experts that other kinds of concurrency models exist than multi-threaded shared memory abstraction or SIMD. The problem isn't just about coming up with a model -- if it helps you in any way, go ahead and browse old academic papers. E.g. CSP was invented 32 years ago.

There are message passing libs for C++, too, for instance MPI. Making the feature built-in doesn't automatically make creating concurrent applications easier.

Yes it does. C++'s (and Java's, Scala's, and Go's) gaping problem is there's no way to ensure that you don't have implicit sharing going on. In D, such can be guaranteed.

For instance message passing is harder to use than implicit parallelism and auto-vectorization when doing parallel processing in loops.

Sure. Except that implicit parallelism is inherently unsound unless the type system can support it.

I'll go further than that. Any language that supports implicit sharing of mutable data is inherently unsound for multithreaded programming.

Reply via email to