Comment by appplication
1 day ago
> If suddenly CSS became pleasant to use
Not being sarcastic, but this will never be. CSS is a perfectly functional interface, but the only way it becomes less annoying is when you abstract it behind something more user friendly like tailwind or AI (or you spend years building up knowledge and intuition for its quirks and foibles).
We have decades of data at this point that fairly conclusively shows that many people find CSS as an interface inherently confusing.
I agree. I actually think CSS (and SQL or other “perfectly functional” interfaces) hold some kind of special power when it comes to AI.
I still feel that the main revolution of AI/LLMs will be in authoring text for such “perfectly functional”-text bases interfaces.
For example, building a “powerful and rich” query experience for any product I worked on was always an exercise in frustration. You know all the data is there, and you know SQL is infinitely capable. But you have to figure out the right UI and the right functions for that UI to call to run the right SQL query to get the right data back to the user.
Asking the user to write the SQL query is a non-starter. You either build some “UI” for it based on what you think is the main usecases, or go all in and invent a new “query language“ that you think (or hope) makes sense to your user. Now you can ask your user to blurb whatever they feel like, and hope your LLM can look at that and your db schema, and come up with the “right” SQL query for it.
Hey! Don't you dare to compare SQL and CSS. SQL is not a cobbled together mess of incremental updates with 5 imperfect ways of achieving common tasks that interact in weird ways. Writing everything in SQL-92 in 2026 is not gonna get you weird looks or lock you out of features relevant for end users. If writing SQL for your problem feels difficult it's a good sign you ought to look at alternatives (eg. use multiple statements instead). Writing the right CSS being difficult is normal.
> Don't you dare to compare SQL and CSS. SQL is not a cobbled together mess of incremental updates with 5 imperfect ways of achieving common tasks that interact in weird ways.
Reminds me a little bit of Sascha Baron Cohen's democracy speech [1] in The Dictator ;-)
Both SQL and CSS have evolved through different versions and vendor specific flavors, and have accumulated warts and different ways to do the same thing. Both feel like a superpower once you have mastered them, but painful to get anything done while learning due to the steep learning curve.
[1] https://www.youtube.com/watch?v=XUSiCEx3e-0
Things like flexbox have made CSS indescribably better and easier to use than it used to be. It's still bad, but degrees matter a lot.
As a fullstack dev, I couldn't do pixel-perfect CSS 10 years ago, and today I can. That's a lot of progress.
I was already using flexbox ten years ago. And if the goal was pixel-perfect layout, I could do that twenty years ago using `position: absolute`.
I would instead characterize the recent developments in CSS as enabling good layout even when there are major unknowns in your content. It was always easy to write CSS tailored to one set of content (say, one style of toolbar in your UI), but it has become possible to write generic CSS (say, a generic toolbar component where the icons are unknown, the width and height are also unknown).
It's getting better (in a C++ kinda way), certainly, but...
It's ultimately still driven my matching "random" identifiers (classes, ids, etc.) across semantic boundaries. Usually, the problem is that the result is mostly visual which makes it disproportionately hard to actually do tests for CSS and make sure you don't break random stuff if you change a tiny thing in your CSS.
For old farts like me: It's like the Aspect-Oriented Programming days of Java, but you can't really do meaningful tests. (Not that you could do 'negative' testing well in AOP, but even positive testing is annoyingly difficult with CSS.)
EDIT: Just to add. It's an actually difficult problem, but I consider the "separate presentation from content" idea a bit of a Windmill of sorts. There will always be interplay and an artificial separation will lead to ... awkward compromises and friction.