New takes on multi-threaded programming
Aug. 8th, 2006 01:50 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Programmers who want to have their brains bent in some useful ways should check out the Joins Library, newly out from Microsoft Research. This extracts the multithreading concepts from their C-omega research language and reimplements them in a C#-compatible library.
Very intriguing stuff. Instead of focusing on multithreading per se, it instead focuses on asynchronous message-passing, and lets the threading fall out of that. The result is a fascinating hybrid between traditional and functional programming styles: you wind up building synchronized data objects whose methods are surprisingly declarative, and are implicitly threadsafe.
The Joins library itself is a bit clunky: while they've figured out how to make these concepts work in C#, it's not nearly as elegant as the C-omega version. And it's strictly non-commercial research code, not suitable for production use yet. Still, I think they're onto something here -- with multithreading destined to become ever more important over the next ten years, these sorts of innovative approaches are much needed...
Very intriguing stuff. Instead of focusing on multithreading per se, it instead focuses on asynchronous message-passing, and lets the threading fall out of that. The result is a fascinating hybrid between traditional and functional programming styles: you wind up building synchronized data objects whose methods are surprisingly declarative, and are implicitly threadsafe.
The Joins library itself is a bit clunky: while they've figured out how to make these concepts work in C#, it's not nearly as elegant as the C-omega version. And it's strictly non-commercial research code, not suitable for production use yet. Still, I think they're onto something here -- with multithreading destined to become ever more important over the next ten years, these sorts of innovative approaches are much needed...