Honestly, thank you. I and many of my other friends have had this happen so much that we don't even react beyond an eyeroll, empty stare, or slight look of contempt for the perpetrator, when we tell each other the stories. I've had a ten minute drive in an unfamiliar city feel like an hour because a brief moment of conversation turned into a man repeatedly asking for my number, explicit details about where I live (not just the city, but the neighborhood, streets and even using phrases like "How can I find you if I visit?"), and my social media accounts. He did all of this despite clear, polite and repeated declinations towards his requests. He said things like "I'd like to be your friend" and further "I'd like to get to know you", and despite being firmly and clearly told, "No, thank you," each time he continued onward until the moment I stepped out of the vehicle. He was not subtle. It was very direct, and his tone sounded more and more frustrated as he persisted.
For anyone reading who has not previously considered it, please imagine what it feels like to be in a moving, locked vehicle you're not in control of, in an unfamiliar place, with someone who is much stronger and taller than you who's not respecting your verbal boundaries. What guarantee do you have it will stop there? What could happen if I truly upset him? How much more unpleasant could it become for me? Meanwhile, I'm paying for this. Even with the option, I'm still paying with the extra time I willingly choose to wait.
Yes, everyone. The username makes it clear. Really though, the supreme arrogance of calling the whole of an entirely different industry mediocre is practically indicative of our craft at this point.
I think that dismissal culture makes no sense when it is aimed towards artists.
For me it is kind of hard to like the things I produce, because of the obvious egocentrism bias. Do I like it, because I like it, or do I like it, because I made it and had to sacrifice something for it?
When I'm judging other people's work and I like it, I consider that feeling to be more genuine, even if the creator outright panders to my preferences.
LLMs have supercharged it though, it's so much easier to create dozens or hundreds or thousands of ultra low effort LLM written webpages and websites that it ever was before LLMs.
And this is what I exhaustively tell people who insist that [tech company] is listening. My reply boils down to, "Why would they need to when you already send them everything in writing?"
Tailwind didn't win for either of these reasons (setting aside any personal positive/negative feelings I have about it). It won (in LLMs) because that's how the ML model works. The training data places the HTML and the styling info together. There's an extremely high signal to noise ratio because of that. You're going to get much fewer tokens that have random styles in it and require several fewer (or maybe even no) thought loops to get working styles. The surface API of selectors is also large and complex. Tailwind utility classes are not. They're either present on an element or not, and it's often the case that supporting classnames for the UI goal are present in close proximity on sibling, parent, or child elements. Even with vast amounts and multiple decades of more CSS to compare against in the training data, I suspect this is the case. Plus, the information is just spread more thinly and more flexible in terms of organization in a stylesheet. The result is you get lots of extra style rules that you didn't need/want and it's harder to one-shot or even few-shot any style implementation. If I'm even remotely right about this, it worth considering this impact in many other languages and applications. I've found the adverse effect to be reduced slightly as models/agents have improved but I feel it's still very much present. It's totally possible to structure data in a way that makes it easier to train on.
There's also a reasonable alignment between Tailwind's original goal (if not an explicit one) of minimizing characters typed, and a goal held by subscription-model coding agents to minimize the number of generated tokens to reach a working solution.
But as much as this makes sense, I miss the days of meaningful class names and standalone (S)CSS. Done well, with BEM and the like, it creates a semantically meaningful "plugin infrastructure" on the frontend, where you write simple CSS scripts to play with tweaks, and those overrides can eventually become code, without needing to target "the second x within the third y of the z."
Not to mention that components become more easily scriptable as well. A component running on a production website becomes hackable in the same vein of why this is called Hacker News. And in trying to minimize tokens on greenfield code generation, we've lost that hackability, in a real way.
I'd recommend: tell your AGENTS.md to include meaningful classnames, even if not relevant to styling, in generated code. If you have a configurability system that lets you plug in CSS overrides or custom scripts, make the data from those configurations searchable by the LLM as well. Now you have all the tools you need to make your site deeply customizable, particularly when delivering private-labeled solutions to partners. It's far easier to build this in early, when you have context on the business meaning of every div, rather than later on. Somewhere, a GPU may sigh at generating a few extra tokens, but it's worthwhile.
I'm mostly interested in how the article more or less accidentally highlights the central problem of the whole industry. Training needs to be solved for these businesses to be viable and sustainable. These products are obviously valuable and monetizable but not at the burn rate we're seeing, and knowledge doesn't stand still. In fact, if the usefulness of these tools is to be believed, it's accelerating. So how do you shorten that feedback cycle without obliterating margin? Software is a largely attractive business because your margins expand dramatically once it's stable, and it's winner-take-all the majority of the time. From an investment perspective, we're looking at something that is not that. And we're supposed to pretend that's acceptable because if we squint really hard we forget it's still a mechanical turk? This ain't a scene, it's an arms race...
Figure right after A6 is pretty striking. Ask people if they expect to use AI and a vast majority say yes. Ask if they expect to use AI for specific applications and no more than a third say yes in any industry. That should be telling imo. What we have is a tool that looks impressive to any non-SME for a lot of applications. I would caution against the idea that benefits are obvious.
For anyone reading who has not previously considered it, please imagine what it feels like to be in a moving, locked vehicle you're not in control of, in an unfamiliar place, with someone who is much stronger and taller than you who's not respecting your verbal boundaries. What guarantee do you have it will stop there? What could happen if I truly upset him? How much more unpleasant could it become for me? Meanwhile, I'm paying for this. Even with the option, I'm still paying with the extra time I willingly choose to wait.
reply