Optimistic UI is the small, well-founded lie that good software tells. You send an iMessage and the bubble is already there the moment you let go, blue and finished, a beat before your phone has actually heard back from Apple. You tap the heart on a post and it fills before the request has left the building. The app has decided the thing you asked for is going to happen, because it almost always does, and it has spared you the half-second of watching a spinner decide your fate. The instinct underneath it is worth saying plainly: work out what is going to happen and commit to it now, instead of making the person wait while the interface makes up its mind in front of them.
That same instinct matters before anyone has tapped anything, in the order you choose to paint the screen. If a button is going to be there, render it there on the first frame. Don't draw half the layout, wait for some async answer to come back, and slot the rest in a beat later — because by then a thumb is already in the air. I watched the NYT Games app get this exactly wrong on my phone last week. The puzzle loads, the Play button sits right where my thumb is already heading, and just as I go to tap it a Subscribe button drops in above and shoves Play upward. The thing now under my finger is Subscribe, and I am looking at a paywall instead of a puzzle. Whether that is a deliberate dark pattern or a subscription check that resolved a few hundred milliseconds late, the result was the same: the app moved the target after I had committed to hitting it, and the target it slid into place happened to be the one that takes my money.

Hit reload, then race to tap Play before Subscribe lands in its place.
That is the real cost of an interface that resolves in public. It is not only the wasted moment. It is the misplaced tap, the wrong screen — and the small dent in trust that comes from being made to feel clumsy by something that was, in fact, the thing that moved. Optimistic updates, and the quieter habit of holding a space for whatever is going to fill it, are both ways of refusing to do that. The person using your app has already decided and already moved. The least the screen can do is be as quick to commit as they were, and then hold still.