Tuple Spaces
10 points by sebastien
10 points by sebastien
My grad research was on tuple spaces. I made a simplistic Go implementation, back when Go was pre-1.0. I think there’s a lot to be said for this methodology, but practically the decompositional wins it facilitates are outweighed by tooling and ecosystem regressions - particularly with regard to observability.
David Gelernter, who came up with tuple spaces, is an erm… colorful character. He named his tuple space implementation Linda, after Linda Lovelace. He also came up with life streams, arguably a twitter before the www existed, was bombed and injured by the Unabomber, is a big Trump supporter, and now that I’m looking over his Wikipedia page, is apparently in the Epstein files: https://en.wikipedia.org/wiki/David_Gelernter
I came to tuple spaces from Aardapel, a very quirky but fascinating visual language. I've been toying with the idea of tuple space with a stricter tuple model, loosely inspired by RDF, I have a sense that this model would cover quite a bit of ground: databases (relational, graph), queues, reactive streams and materialized views. It's only on Lobsters that you can hear these kinds of anecdotes, compsci history is full of surprises!
I believe Ruby used to have an implementation called Rinda, actually. Once part of the Drb distributed Ruby package!
The provided diagrams suggest the distributed version of tuple spaces, as with systems like Apache Kafka. However, there are also compilation strategies which attempt to schedule tuples like immediate function calls; reading and writing are more like local syscalls than RPCs. This has heavy overlap with implementation strategies for CHR, particularly over imperative host languages as in CHR(Java) and CHR(ECMAScript).
Didn't know about CHR, it definitely seems related, albeit much more focused on the logic programming. Thanks!