Probably more in the thesis, but at a glance this mention isn't further defined or referenced. The https://en.wikipedia.org/wiki/Ambient_calculus is quite beautiful and IMHO doesn't get the attention it deserves. Undergrad as far as I know never covers it, and most people I meet have never heard of it. AFAIK tuplespaces also are not usually taught, and people that have heard of it tend to dismiss it as "just some obsolete old java thing" because the most popular implementation probably does fit in that category. A shame since this is really cool stuff.
One problem that I see with all 3 technologies (ambients, tuplespaces, and syndicate) is that they sit somewhere at the intersection of datastructures / infrastructure / frameworks, but don't have clear and obvious deployment options. Compare this with say, akka on kubernetes. No matter how cool your tech is, this is an immediate non-starter for everything except academic investigation or low-level systems programming. Synit for user-space sounds neat, but if syndicate is generally a better model than Akka and additionally productionizing the other great ideas of past concurrency research, then it would be awesome to see the gap for other use-cases addressed.
Ambients seem indeed cool and this is where I first heard about them.
> One problem that I see with all 3 technologies (ambients, tuplespaces, and syndicate) is that they sit somewhere at the intersection of datastructures / infrastructure / frameworks, but don't have clear and obvious deployment options.
I disagree. I think it's simply still science fiction and the cutting edge of distributed research which isn't very popular in academia these days. Actors (1978) are just now barely becoming mainstream with the hype of Elixir and rediscovery of Erlang, even though the world still runs on multithreaded C and dead locks.
The tech is cool, but no one is being paid just yet to create practical languages and environments out of this. As in many other scientific endeavours, mainstream programming paradigms tend to lag 20 or 30 years compared to the research.
There's been an increasing interest in the Fediverse and local-first programming. Not quite mainstream, but they are well out of the academia.
I have never heard of these ideas about the Syndicated Actor, but they seem like they might hold answers for issues in the Fediverse and make implementing local-first software more practical,.
We have things with synchronizing state between web clients and servers and jump though all kinds of hoops with that (example, Relay), and I wonder if this would help with that. Lumen (Elixir on WASM) has stalled in development and LiveView is popular, but maybe with this, that is not what we want to do anyways.
We have things like event-driven architecture, microservices, and DDD, but maybe that results from using narrowly-scoped primitives that isn't suitable for everything. But we use it for adjacent use-cases because that is all we have for commercial languages.
I know that's what a lot of people say, but meh, I was hoping for something more exotic, and there's already lots of ways to web. An implementation of the ambient calculus on top of libcluster would be more killerer :) And re: tuple-spacing, elixir's built-in support for pattern-matching fits really well with that.
Such a thing might handle web as a special case, and could maybe evolve towards secure by design / provably-secure in ways that could be new/interesting. Or it might be a more expressive kind of FaaS, or be wildly popular with the "kubernetes is too complex/expensive!" crowd, especially if it can somehow integrate components written in other languages.
Just dreaming though, I only wish this kind of stuff was my day job. And even if I had really concrete ideas, something more solid than a proof of concept for such things probably needs a small army of devs. Phoenix does have the major benefit of actually existing, which is nice!
Probably more in the thesis, but at a glance this mention isn't further defined or referenced. The https://en.wikipedia.org/wiki/Ambient_calculus is quite beautiful and IMHO doesn't get the attention it deserves. Undergrad as far as I know never covers it, and most people I meet have never heard of it. AFAIK tuplespaces also are not usually taught, and people that have heard of it tend to dismiss it as "just some obsolete old java thing" because the most popular implementation probably does fit in that category. A shame since this is really cool stuff.
One problem that I see with all 3 technologies (ambients, tuplespaces, and syndicate) is that they sit somewhere at the intersection of datastructures / infrastructure / frameworks, but don't have clear and obvious deployment options. Compare this with say, akka on kubernetes. No matter how cool your tech is, this is an immediate non-starter for everything except academic investigation or low-level systems programming. Synit for user-space sounds neat, but if syndicate is generally a better model than Akka and additionally productionizing the other great ideas of past concurrency research, then it would be awesome to see the gap for other use-cases addressed.