4 ms·
Preprocessors have solved things fairly well for a while now https://pdx.su/blog/2023-07-26-tailwind-and-the-death-of-craftsmanship/ https://pdx.su/blog/2023-0
by paradox460 2y ago
Preprocessors have solved things fairly well for a while now
https://pdx.su/blog/2023-07-26-tailwind-and-the-death-of-craftsmanship/ https://pdx.su/blog/2023-07-26-tailwind-and-the-death-of-cra...
This article is coming up on two years old, and still holds true. You can just now do a lot of the things that required external tooling in plain css
- wwweston 2y agoJust want to say thanks for this -- I hadn't seen it before, and it touches effectively on a number of practical criticisms I have of Tailwind plus some I hadn't articulated yet. And I'm really glad it brings the context of web craftsmanship into this, I think it's related. As I've argued elsewhere in-discussion, a fair portion of Tailwind's appeal probably comes from the way it fits with the "grain" of business web dev culture, which itself is driven by product management culture oriented around conversion metrics (often wielding iffy A/B testing) and rewards for bikeshedding. The benefits of craftsmanship or systematic design are less legible and so design direction and front-end tasks tend to be one-off screen-by-screen and pretty churn-y. Semantics are an afterthought and invisible to most stakeholders, attempts to systematize are often seen as irrelevant if not obstacles to business goals. Tailwind just gives up. Give the business and its agents what they want, get through your task list, and find somewhere else to care about the subtleties of quality.
- paradox460 2y agoI didn't address it as much in the article as I probably should have, but in the time since I've written it, one of the other things that I've really come to terms with is the fact that a very large number of developers don't view frontend as "real" programming. These developers come from all sorts, backend, mobile, whatever, but all share a uniform disdain for frontend web. It's something to get done and get out of the way so you can get back to "real" programming. And so anything that slows down the "getting things done" step is seen as an obtuse undue burden. Learning JS gets a small pass (a lot of criticism too, some justified, some tired, and some unjust) since its at least got the dressings of a "real" programming language, and HTML is simple enough that you can learn most of what you need in an afternoon. But CSS doesn't get that pass. Its not really a programming language, and its not drop dead simple. Its actually rather complex, and used to be even harder. And so, time and time again, we see these tools that aim to be a panacea for this issue. ExtJS, Bootstrap, BEM, Tailwind, there's a long lineage of these things. And they all try and shield the poor developer from having to actually learn to use the tools at hand. I'm not going to use the tired analogy of a carpenter not knowing how to use a hammer so he uses a rock instead, because that does some disservice to tools like Tailwind, which are impressive engineering feats in their own right. Rather, its a guy normally used to working with sheet metals being tasked to frame a house. He uses his peen hammer to drive nails, and it works well enough, as long as he's just putting nails into wood. But the moment he needs to remove some sticks to open up a new doorway where there were previously studs, suddenly he finds that he has no claw on the end to pull the nails out, and has to resort to using a screwdriver and a pair of pliers. Thats what tailwind is. The peen hammer. You can write a frontend just fine with it. But the moment you have to change anything already written down, you run face first into its limitations. So you find yourself working your way through templates or whatever the analog in your project is, pulling out bg-blue-300 and replacing it with bg-purple-300, maybe using some find-and-replace to help with the process, but knowing you cant rely on it entirely because there are some blue-300 things you want to stay blue and others you don't.