Elektrine lite

← Feed

@dougmerritt@mathstodon.xyz

Post #2009170

2026-04-27 07:03 UTC

@munificent I see that you are mentioned here: "What Async Promised and What it Delivered" "Each wave fixed the last wave's worst problem and introduced a new one." April 2026 https://causality.blog/essays/what-async-promised/ At first glance I think I like their overview.

Replies (4)

  • @dougmerritt @munificent of all the diff treatments of the problem I've been most happy with Golang, and its channels and selects. when building up a complex network service I find myself tip-toeing thru a minefield trying to avoid hangs, deadlocks, races etc and the coloring issue and Golang's choices and idioms ease that burden, increase my confidence.

    Open ##2149693

  • @cdegroot@mstdn.ca 2026-04-27 13:09

    @dougmerritt @munificent my worst gripe with async/await is that it starts permeating your code base, and by the time it hits my business logic, which (with the languages I tried, at least) inexplicably always happens, steam starts coming out of my ears. I'm strongly in favor of the Erlang/Elixir solution. It'll block on I/O, but that's fine, because it's only blocking a single process and thousands or millions of others are doing useful work. I've always had the feeling that solving this by slapping low level keywords onto existing languages is the wrong solution. Erlang solves it in the VM, and probably by rethinking what an OS in 2026 should do one can find even better options "down there".

    Open ##2149694

  • @vnikolov@ieji.de 2026-04-27 16:54

    So has Hoare's _Communicating Sequential Processes_ become obsolete? When? I noticed this in the article: «The original futurelock at Oxide required core dumps and a disassembler to diagnose.» The more things change... @dougmerritt @munificent

    Open ##2149696

  • @ewhac@mastodon.social 2026-04-29 16:24

    @dougmerritt @munificent After reading this, I started to wonder if there's a way to automatically defer promise/future resolution until the value is actually needed. Something along the lines of: buf = ReadFileIntoNewBuf (filename); // buf is of type Promise do_stuff(); do_more_stuff(); do_stuff_with_file_contents (buf); // buf is automatically resolved; possibly promoted to type uint8_t[], or ResolvedPromise. I'm almost certainly not the first to wonder about this...

    Open ##2149701