IRC channel logs
2023-06-11.log
back to list of logs
<Zarutian_iPad>Ryuno-KiAndrJaen: re “Async/await was introduced to combat the Pyramid of Doom”, yeah I am familiar with that thing <Zarutian_iPad>this is why .then() sausages came about. But as I explained async/await syntax causes a few bad habits in programmers using that syntax. <Zarutian_iPad>one synptom of it, rightfully pointed out, is the “What colour is your function?” blog post <Zarutian_iPad>this is because the async/await syntax confuses together two distinct things into one <Zarutian_iPad>the former is just normal functions and their sequential control flow, a thread of (potential) execution so to speak <Zarutian_iPad>the entire task is represented by the sausage chain of such steps <Zarutian_iPad>basically what async/await syntax does is to inadvertantly trick people to write couroutine threaded code. <pukkamustard>CoAP might be interesting as netlayer for Spritely as it is itself transport agnostic and runs over TCP, UDP or WebSocket. <juliana[m]>mildly off-topic but is this in any way related to your PR to add distributed substitutes to Guix? <juliana[m]>er, p2p substitutes? not sure the best description here, but i'm mostly just hoping you know what i'm talking about ;) <ehmry>juliana[m]: it is. coap isn't designed as a p2p protocol but it does feature bidirectional requests and multicast discovery <pukkamustard>juliana[m]: Yep, it is. As ehmery mentions CoAP allows more P2P kind of stuff with bidirection requests and discovery. However another big thing is that it allows asynchronous requests. <pukkamustard>Async requests (or pipelining) is important with ERIS as we decode in small blocks. If for every small block we need to wait for a round-trip to the server, performance is very bad - it is latency-bound. <juliana[m]>super exciting to see this work is still being done! it's an idea that a friend put into my head a while back and I didn't realize someone had already started working on it (before I ever learned about Guix to boot!) <pukkamustard>CoAP allows async requests that allows us to send many requests for small blocks and continue decoding content as they come in. The recent release of Guile-ERIS has a lookahead decoder that tries to keep the connection saturated. This all works with some nice Fiberization.