"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog

Friday, July 15, 2005

Concurrency Bragging Rights

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.

The smart minds at Microsoft Research have been focused on a new concurrency constructs in COmega based on join calculus.

On the other hand many years ago I was using Doug Lea's wonderful 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!


Isaac Gouy said...

"... 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?

Patrick Logan said...


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.

Isaac Gouy said...

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

Blog Archive

About Me

Portland, Oregon, United States
I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.