Every mental model of computing has its limits. Unix pipeline networks can have degree>1 (for instance tee(1) fans out, cat(1) fans in). People use json or powershell-kind-of-scuccessors for typing. Many RPC implementations are also not bidirectional (gRPC can be), and when thinking in RPC, you are quite far away from simple data streaming mechanisms. With all the complexity you now can get.
I think there is a reason why (web or unix domain) sockets still live today: They met a sweep spot between neccessary complexiy and mental simplicity.
quantified · 14h ago
> This cross-language composition remains remarkably rare in modern development, where we typically force everything into a single language ecosystem and its assumptions.
I think IPC via HTTP, gRPC, Kafka, files, etc allows language decoupling pretty well. Intra-process communication is primarily single-language, though you can generally call from language X into C-language libs. Cross-process, I don't see where the assertion comes from.
lenkite · 10h ago
Something like Kafka should be part of the core operating system. Its API has been stable for years (decade+?) now.
rajiv_abraham · 14h ago
I find Paul's take on simplicity(and complexity) very illuminating.
I think there is a reason why (web or unix domain) sockets still live today: They met a sweep spot between neccessary complexiy and mental simplicity.
I think IPC via HTTP, gRPC, Kafka, files, etc allows language decoupling pretty well. Intra-process communication is primarily single-language, though you can generally call from language X into C-language libs. Cross-process, I don't see where the assertion comes from.