Well, well...
Sean Kelly
sean at f4.ca
Thu Aug 2 15:22:04 PDT 2007
Walter Bright wrote:
> Nick Sabalausky wrote:
>> I'm not trying to de-emphasise concurrency, it's just that reliability
>> and productivity are where my focuses have been lately, so that's what
>> I have the most to say about. My only experience with concurrency has
>> been just with one microcontroller (Parallax's Propeller).
>
> I'm beginning to suspect that many issues that surround concurrency are
> related to reliability - issues like better modularity.
I think this is true. Concurrency designed around message passing is
far more scalable than concurrency involving shared state, for example,
and message passing is really nothing more than a mechanism to increase
modularity. In fact, I've pretty much decided recently that concurrent
programming is really slowly working towards a pure message-passing
design similar to Erlang, and that library solutions in traditional
imperative languages are simply attempts to extend the useful life of
existing code (futures, etc).
What I would personally find most interesting is if systems programming
facilities were exposed in such a language, since this would provide a
solid mapping between a task and a CPU. From what I gather, Erlang
currently calls C routines for much of the performance-critical or
low-level work, and the need to integrate two languages doesn't seem
terribly ideal, assuming everything could be elegantly combined.
As an aside, one interesting aspect of Erlang is that it turns code
reliability on its head to a degree by simply aborting the process if an
exception occurs. This seems far preferable to the manual exception
recovery typically done in C++, Java, and D, which reduces code clarity
and can be difficult to get right. Concepts like DBC, however, provide
a quite useful degree of boundary checking, and seem applicable
regardless of the degree of modularity introduced.
Sean
More information about the Digitalmars-d
mailing list