Remix.run Logo
thesz 16 hours ago

They build channels on top of these "promises" and "futures" and this made them square into communicating sequential processes category. Also, you can look at promise-future pair as a single-element channel, again, it's CSP.

BTW, Erlang does not implement CSP fully. Its' interprocess communication is TCP based in general case and because of this is faulty.

yetihehe 4 hours ago | parent [-]

It is not TCP based. In Erlang processes have mailboxes. But they don't have promises, you send a message and wait for response with timeout or do something else. And TCP is only used between nodes (vm instances). But you can use any communication channel (UDP, unix sockets, tls, serial port, some other process doing funny things).

> Its' interprocess communication is TCP based in general case and because of this is faulty.

What? It's faulty because of TCP? No, in Erlang it is assumed that communication can be faulty for a lot of reasons, so you have to program to deal with that and the standard library gives you tools to deal with this.