Wes Moise writes about upcoming advances in concurrency in C# and Java. He sees C# as making the bigger leap into the state of the art.
It’s safe to say that Microsoft will be addressing this issue soon, and probably will be leading the way. As for Sun, Java 5 introduces some concurrency features such as AtomicInteger types, ReentrantLocks, lock-free data structures, but it’s not fundamentally different from concepts that originated in the 60s.On the other hand many years ago I was using Doug Lea's wonderfulThe smart minds at Microsoft Research have been focused on a new concurrency constructs in COmega based on join calculus.
util.concurrent
package. This has become "standard" now as java.util.concurrent
.
The real problem is C# and Java are still languages from the middle of the pack of "the 60s" languages (e.g. Concurrent Pascal). Languages from the best of "the 60s" like Lisp and Smalltalk, have not had to change much and are able to move into new concurrency models with much less baggage.
I am not sure I would hold either C# or Java on a pedestal for the coming paradigm of concurrent programming. Eeek. Termites!
3 comments:
"... Smalltalk... are able to move into new concurrency models with much less baggage."
Seems that all I have in VW and VA and Dolphin are the old concurrency models that were there 20 years ago?
Where should I look for the VW Join Calculus parcel?
Isaac,
Well, (wiggle) the *ability* to do such a thing, and having actually *done* such a thing are two different, er, things.
So Reflective Facilities in Smalltalk-80 does illustrate the ability to define a neat implementation of "futures" and so an implementation like Cw's join calculus could arguably look something like this. The difference between Smalltalk and C# being that any programmer can do it in Smalltalk, but a compiler writer has to do it in C#. That's the main point.
But you are correct that available distributions only arrive out of the box with more or less the original thread and mutex classes, and the shared queue on top of that.
The difference between Smalltalk and C# being that any programmer can do it in Smalltalk
Or with the opposite spin, the difference between Smalltalk and C#, is that Smalltalk application development teams have to implement too much language infrastructure themselves.
Type recovery, concrete type inference,traits,interfaces,... all diy
Post a Comment