« random 10 | Main | There is no top »

Object, know thyself

Herb Sutter is at the message-passing party:

"Shared state is evil (for concurrency, but also for so many other reasons including plain old single-threaded coupling). Async messages are the way to communicate."

He goes on to say:

"Point solutions already exist for all of these things, but they now need to be brought into mainstream programming languages in a usable and accessible way. And that's what I call the "OO of concurrency" - those extensions will be as much of an extension as classes and virtual functions. Ada95 and Java do some of it (but not nearly enough), ditto for research languages like QC++, and ditto for OpenMP (which I view as industrial-strength duct tape, strong but an ugly band-aid) - all of those are more similar than they are different, and incremental steps that basically stick with the current status quo (in particular, supporting shared state and locking), which is fundamentally not good enough. [...]. Functional languages have long been well-suited to concurrency, but likewise I doubt that mainstream programmers will make a functional language the dominant commercial programming language anytime soon; it's too different from the imperative model.
So there's a lot of interesting research and directions, exploring useful avenues, but we need something a lot smoother, cleaner, and applicable to current imperative programming languages. I and other people are actively working on that."

If message passing and state isolation is that important at the programming level [1], then by the time you're done patching C++ VTables, or waiting for Java to have Isolates, or waiting for Windows to have Indigo, arguably you might as well have shipped it with E, Erlang [2] or Smalltalk. And as far as I can tell, using a message passing language could be just as big a jump for Joe Dev as using a functional one - having weird syntax while not having assignments is one thing, having your head turned inside out about synchronicity and state is another. That said, I can't wait to see what he comes up with on the language/tools front.

[1] as opposed to the XML-contracty stuff we see in REST/WS/SOA

[2] Real world, can do.

March 20, 2005 01:33 AM


Post a comment

(you may use HTML tags for style)

Remember Me?

Trackback Pings

TrackBack URL for this entry: