# Socket API thoughts

DevFeed: [Socket API thoughts](<https://devfeed.tech/articles/socket-api-thoughts-38960.md>)

Original publisher: [Read original article](<https://idea.popcount.org/2017-02-23-socket-api-thoughts>)

Author: Marek

Published: 2017-02-22T23:00:00Z

Content type: opinion

Language: en

Sources: [Marek Majkowski](<https://devfeed.tech/sources/marek-majkowski.md>)

Topics: [Unix](<https://devfeed.tech/topics/unix.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [IO](<https://devfeed.tech/topics/io.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Erlang](<https://devfeed.tech/topics/erlang.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [erlang](<https://devfeed.tech/tags/erlang.md>), [go](<https://devfeed.tech/tags/go.md>), [processes](<https://devfeed.tech/tags/processes.md>), [stream](<https://devfeed.tech/tags/stream.md>), [unix](<https://devfeed.tech/tags/unix.md>)

## AI overview

The article examines whether Unix processes, file descriptors, and select() were designed around CSP-style communication. It concludes that they were not, while discussing composability limits and buffering-related problems in Unix process and I/O models.

## Source excerpt

Socket API thoughts I/O multiplexing, commentary Some time ago I wrote about a history of syscall. While that piece was a necessary introduction to the followup post, it triggered interesting discussions. It took me a while but I finally realized what is the core question I asked myself. Here it is: Were Unix processes intended to be CSP-style processes? Are file descriptors a CSP-derived "channels"? Is "select()" equivalent to ALT statement? The direct answer is "no". CSP is younger than Unix.