What is funny with your article is that you talk about tradition, when actually these traditions are based on assumptions which are themselves based on beliefs like : "separation of structure and style are a good thing".
But this belief is only true if the language to describe the structure is html or js which creates not reusable pieces of style/structure.
But when you go for a different approach where everything is functions and strong types (ADT), like when you use haskell for exemple, this debate is over, because you handle EVERYTHING in your code, and stop fragmenting the truth into opaque and dissociated worlds (html, js, css, database, glue, docker, ...).
I don't recommend css. Css is BLOATED. And tailwind makes it a little less bloated, but it's still not strongly typed, and not very re-usable, especially in code.
But your approach is from the past man, really... .btn is not reusable among pages / projects / etc. => it's always different, and when you understand that specificity wars is the main problem of css, you will not want to use your idea again.
It LOOKS cool to have a <button class="btn"> inside your html. because it's more readable. But it's NOT explicit. You fragment truth into different pieces. and it makes it IMPOSSIBLE to test things in isolation.
One last thing. Using all the "last features" of css is just putting you in a place where you depend on the browser carriers to handle things for you when I prefer personnaly to rely on myself and my craft. But that's a personal one ;)
Tried it for a week. It changed everything for me.
- the icon showing how many claude instances are running
- sleep preventer does not only sleep prevent, it also allows being able to dictate to claude code from a ... local llm => amazing
This guy should read Bruno Latour, it would make him understand that engineering and more generally science is also a belief system, based on some way of validating the knowledge that can be (or not) what occidental people call logical. But it's another ethnocentrism.
See symetry proof of azandé for more insights
Let's pretend you have good dating apps and bad dating apps at the time T.
As soon as you find love on a dating app, they "lose" you as a user, you stop paying your monthly fee, and you leave the app.
So I have a theory about dating apps. They give you somebody average, somebody that you could like enough, but not for too long, because YOU NEED TO COME BACK TO THE APP for them to succeed.
So only the bad dating apps darwinely are being used more and more by people. They have more and more profiles (who doesn't find love).
It's called retention my friend, and it's the key metric for apps.
(FWIW, I used to run a very small/niche, mildly profitable social/dating thing.)
As soon as you find love on a dating app, they
"lose" you as a user, you stop paying your monthly fee
I think this is clearly true for a lot of business models, but I really don't think this is as true for a dating app.
As a business, you are competing against an endless array of other options. How many dating apps are there? A billion? If people don't like the matches you're serving up, they'll try one of the other options... not just hang around your app endlessly, hoping it improves.
But this belief is only true if the language to describe the structure is html or js which creates not reusable pieces of style/structure.
But when you go for a different approach where everything is functions and strong types (ADT), like when you use haskell for exemple, this debate is over, because you handle EVERYTHING in your code, and stop fragmenting the truth into opaque and dissociated worlds (html, js, css, database, glue, docker, ...).