▲ | catern 3 days ago | |
>What would be the syntax for promise pipelining, if you aren't using promises to start with? Oh, great point! That does seem really hard, maybe even intractable. That's definitely a reason to like cooperative concurrency, huh... Just to tangent even further, but some ideas: - Do it the ugly way: add an artificial layer of promises in an otherwise pre-emptive, direct-style language. That's just, unfortunately, quite ugly... - Use a lazy language. Then everything's a promise! Some Haskell optimizations feel kind of like promise pipelining. But I don't really like laziness... - Use iterator APIs; that's a slightly less artificial way to add layers of promises on top of things, but still weird... - Punt to the language: build an RPC protocol into the language, and promise pipelining as a guaranteed optimization. Pretty inflexible, and E already tried this... - Something with choreographic programming and modal-types-for-mobile-code? Such languages explicitly track the "location" of values, and that might be the most natural way to represent ocap promises: a promise is a remote value at some specific location. Unfortunately these languages are all still research projects... |