I don't understand why async communication is so hard for a lot of people. I know not everyone can devolve discrete math problems in their head but it frustrates me to the point where I'm like have y'all ever been at a sandwich counter? Every fast casual counter service restaurant that separates ordering, constructing, and paying is a prime example of async communication that involves the customer in the process transparently.
The good thing about anarchist systems is that unlike computer systems the boundary between "internal and external" doesn't exist in the same way. For a computer system there is often a usage boundary where that system needs to abstract itself into a different form, e.g. distributed async to seemingly centralized sync (from a users perspective). Anarchism doesn't have that boundary.
Yeah I also subscribe to Easy/Hard - Simple/Complex.
Async is simply multiplying by 2 for Complexity
If
myResult = doMyThingWithMy(args)
is a 1 thenIs a 2.
If you're adding in error and flow control complexity, we're simply arguing about how everyone cargo cults bullshit syntax and practices instead of using sensible things like a Maybe/Result monad where you have
Result<success, value>
and exceptions always crash.Which is just multiplying complexity in these cases by 3. If Complexity is a logarithmic scale it's just the next order. rather than the next next order.