Occasionally my wife likes to hear me explain my work, beyond just the outcome that I'm trying to accomplish. Whenever this has involved web UI work, the conversation has broken down into her lecturing me not to be so negative. This is not because I'm feeling any negative emotion at the time, but because virtually nothing in the modern web stack can be described in terms of a positive intention coming to fruition. Every time she asks "why?" the reason is some historical mistake, some failure that can never be undone. Even when it's an aspect of web technology I personally enjoy and admire, I can't explain why it exists without telling a horror story. I manage to frame other areas of computing, when I want to, as a story of progress, a heroic sequence of invention and improvement (with some mistakes and backtracking) leading to a better and better future. Web programming always comes off as a descent into hell. And it's a malevolent God's hell, where every mistake anyone has ever ever made, every injury anyone has ever done to another person, is revisited on you and everyone else every day for eternity.
I forget this, because I take all the history for granted and am excited and grateful that I can use create-react-app to summon a vast technological apparatus to mostly paper over the damage for a putatively-full-stack-but-really-back-end weeny like me. But when I have to explain it to somebody, yeesh. It's like explaining the Vietnam War (or, at this point, the war in Afghanistan) to a younger relative. You forget how awful it was until you have to put it into words, and then you feel depressed the rest of the day thinking about it and realizing that everything we could learn from it to prevent it happening again is something we already knew before we did it.
This is why I find it so difficult to work with my organization’s designers. They all work primarily in print, so when they give me a web design it’s always frustrating for everyone involved. They don’t understand why I can’t reproduce their reference designs pixel-perfect; they don’t get that giving me layouts for three different screen sizes doesn’t make their design responsive. I try to explain these things and they don’t really believe me, but I don’t blame them. I would have had the same reaction before I experienced it myself.
This is a curse of practicality and popularity, and you see it in other areas of computing.
Recently there have been some threads about filesystems, and how they don't provide exactly the guarantees that applications would find useful for providing their own guarantees on top. The reason is because filesystems had to deal with performance desires and many imperfect applications and hardware storage devices in the past. Trying for certain kinds/levels of "guarantees" just didn't make "market" sense, even in an open-source OS. And they do usually work remarkably well in practice ...
I forget this, because I take all the history for granted and am excited and grateful that I can use create-react-app to summon a vast technological apparatus to mostly paper over the damage for a putatively-full-stack-but-really-back-end weeny like me. But when I have to explain it to somebody, yeesh. It's like explaining the Vietnam War (or, at this point, the war in Afghanistan) to a younger relative. You forget how awful it was until you have to put it into words, and then you feel depressed the rest of the day thinking about it and realizing that everything we could learn from it to prevent it happening again is something we already knew before we did it.