Sockets, in comparison are not simple. For a 1:1 connection they are overly complex, have too many failure states… UDP packets can get lost EVEN on the same machine. This isn’t acceptable (even if it happens rarely). TCP can have lag. The only thing faster is shared memory (which is NOT simple to keep from being mangled).
@feloneouscat
They're simple on Python with a decent framework :)
A good framework has event queues and resilience built in. Heck, even CherryPy which is barely a framework.
Not udp tho except for email spam lol