▲ | mpweiher 4 days ago | |||||||||||||||||||||||||
Big fan of Cap'n'Proto and this looks really interesting, if RPC is the thing that works for your use-case. However, stumbled over this: The fact is, RPC fits the programming model we're used to. Every programmer is trained to think in terms of APIs composed of function calls, not in terms of byte stream protocols nor even REST. Using RPC frees you from the need to constantly translate between mental models, allowing you to move faster. The fact that this is, in fact, true is what I refer to as "The gentle tyranny of Call/Return" We're used to it, doing something more appropriate to the problem space is too unfamiliar and so more or less arbitrary additional complexity is...Just Fine™. https://www.hpi.uni-potsdam.de/hirschfeld/publications/media... Maybe it shouldn't actually be true. Maybe we should start to expand our vocabulary and toolchest beyond just "composed function calls"? So composed function calls are one tool in our toolchest, to be used when they are the best tool, not used because we have no reasonable alternative. https://blog.metaobject.com/2019/02/why-architecture-oriente... | ||||||||||||||||||||||||||
▲ | KuSpa 3 days ago | parent | next [-] | |||||||||||||||||||||||||
Ah, the good old squeak/smalltalk days. A few years back I worked on signals (or rather a static analyser for the editor to support signals) in squeak/smalltalk. The kind of signals those indie frameworks like angular and svelte now adopt trying to solve the problem of changepropagation you outline in your paper. What i'm getting at is: For the places where other tools are better (like the UI example), we already have other tools (signals, observables, effects, runes,...). And for the places like client/server-communication: This is kind of where "call/return" usually shines. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
▲ | kentonv 3 days ago | parent | prev [-] | |||||||||||||||||||||||||
Eh, I think composed function calls have legitimately won _because_ they compose well and are easy to understand, not just because we haven't tried other things. | ||||||||||||||||||||||||||
|