> I think it can work if you want processes with different lib versions or even different languages
This is exactly right, unrelated binaries can coexist, or different versions of the same binary, etc.
> it sounds somewhat risky to pass data just like that
This is also right! I started building an application framework that could leverage this and provide some protections on memory use: https://github.com/jer-irl/tproc-actors , but the model is inherently tricky, especially with elaborate data structures where ABI compatibility can be so brittle
Store all data in one of those nocopy encodings, capnproto/msgpack? Then each language can read the same memory but with the language specific SDK