... and in the end you still have talk over TCP and deal with that leaky abstraction, or you accidentally write O(N^2) code that could be expressed easily in O(N) (compare https://github.com/nominolo/HTTP/commit/b9bd0a08fa09c6403f91... for a recent HN submission) because the "taking away" approach at abstraction also abstracts out some important performance considerations.