This is a good piece. I’m saying this as a user (I’m a translator, not a programmer); plenty times my connection is unreliable, for a thousand reasons (such as a broken connector — uuurgh, that weekend!), and because my internet service is far from stellar. I also like how the author highlights some caveats and potential solutions, like: rely on the TCP instead of IP, use buffers, etc.
But I bet that most of the time those incorrect assumptions pop up simply because plenty devs don’t fucking care about user experience. And because even if assumptions are the bane of any good programmer (or any good human being, really), not assuming requires you to think, and some people treat thinking as if it was one of the Twelve Labours of Hercules. Also because this affects more people with crappier internet, and they don’t really care about poorer people.
Now, I’ll focus on the usage of the word “fallacy” within this text, because it’s rubbing me the wrong way. And because plenty people get fallacies really wrong, even if shit matters.
“Fallacy” is not just a fancy way to say “incorrect assumption”, like the author does. A fallacy is a faulty reasoning. It means that, even if you started out with solid info, the conclusion is unreliable. It’s stuff like this:
P1. Felines are animals.
P2. Dogs are animals.
C. Dogs are felines.Both premises (P1 and P2) are true, and yet the conclusion © is false: dogs are not felines. Because the reasoning sucks; you can’t assume one set (“dogs”) is a subset of another (“felines”) because both happen to be subsets of a third one (“animals”).
But what if we replaced “dogs” with “cats”, and kept the reasoning intact? Like this:
P1. Felines are animals.
P2. Cats are animals.
C. Cats are felines.The fallacy is still there, even if the conclusion happens to be true, because I did not change the flawed reasoning; it’s still a brainfart.
Why this matters: because if you start with true premises and your reasoning is not fallacious, the conclusion is reliably true. Like this:
P1. Cats are felines.
P2. Felines are animals.
C. Cats are animals.As long as both premises is true, since this is good reasoning, the conclusion will be also true.
[HN comment] On the one hand, the list isn’t wrong. // On the other hand, more fortunes have been made by assuming that physics will catch up (closely enough, anyway) to computational needs, than by assuming that every byte and every cycle and every nanosecond matters.
Now, this is a fallacy. Actually two: moving goalposts + nirvana fallacy. Typical HN dumb commenter.
It’s moving goalposts because it’s clear the focus of the author is to encourage good practices, that ensure good user experience. It is not about “making fortunes” or crap like this.
And it’s a nirvana fallacy because the user disingenuously (or worse, idiotically) implies that not assuming better hardware means assuming “every byte and every cycle and every nanosecond matters”.
Sure, people in general will probably get better connections over time. But
- you’ll most likely see plenty, plenty exceptions.
- the present matters too, not just the future.
And yet you don’t need to pretend every bit transmitted over the internet counts. As long as you keep the eight points from the author in mind, and… well, ask yourself
- do you really need to send that shit through the network? It’s often unreliable (#1), it’s a security risk (#4), and there are associated transport costs (#6).
- am I expecting the network to be better than it actually is? Packages won’t arrive instantaneously (#2), the delay is often unpredictable (#2), bandwidth might be a bottleneck (#4), and there might be some hidden cost (#7).
- etc.


