And now I can't even remember the problem they solve or any potential use cases. Weird.
And now I can't even remember the problem they solve or any potential use cases. Weird.
Similar concept behind message queue based systems, service oriented architecture, and many, many others. Though more pull-based than push-based. You wouldn't explicitly launch a process, you have a process that sits around waiting to for a tuple to show up and then takes/copies it and does the work.
In David Gelernter's original work, it's not just data. In Linda, it's possible to put Objects in, which are little executable (`eval` in Linda terms) which a processor can manipulate through whatever interface the tuple type exposes.
Also, what's to stop another processor "finding" the Object before the intended recipient?
2. In TupleWorld, there's no concept of "the" intended recipient. The tuple's properties determine what kind of processor would match. If those properties happen to only match a single processor, you'd get that 1:1 mapping you want, but that's missing the point of tuple spaces.
Perhaps this is attempting to solve a problem I've not come across. While it sounds interesting, I'm not sure I see the benefit? (Probably me just being short-sighted).
https://dl.acm.org/doi/10.1145/63334.63337 (free access)
By having the producer gradually update the responses to all possible queries to a tuple space, completely on its own schedule, there is not even temporal coupling between it and the consumer.