I mean, if you’re not asking for anything in particular WRT constraints, it can be pretty easy to compose transactions with data structures, but you need a language that isn’t permeated with needlessly mutable datatypes before that becomes practical.
I worry more about the highly informal distributed systems that arise from having Machine ${A} talk to Machine ${B} than I do in-process concurrency.
Not directly, though we want some sort of thing eventually. It’s really hard to encode equvalent semantics, for example, box vs uniq_ptr: very similar, but move semantics work a bit differently. And while Rc/Arc is like shared_ptr, expressing the difference between Rc/Arc doesn’t really work in C++’s type system…
I mean, if you’re not asking for anything in particular WRT constraints, it can be pretty easy to compose transactions with data structures, but you need a language that isn’t permeated with needlessly mutable datatypes before that becomes practical.
I worry more about the highly informal distributed systems that arise from having Machine ${A} talk to Machine ${B} than I do in-process concurrency.
Are there any comparisons available for, say, good C++ smart-pointer-managed object transfer vs the Rust equivalent?
Some of the bookkeeping can be done without too much pain in even C++98, provided you’ve got a nice library of atomics.
Not directly, though we want some sort of thing eventually. It’s really hard to encode equvalent semantics, for example, box vs uniq_ptr: very similar, but move semantics work a bit differently. And while Rc/Arc is like shared_ptr, expressing the difference between Rc/Arc doesn’t really work in C++’s type system…