@smith.adriane Was thinking of you as I listened to this Richard Feldman podcast — it’s about performance, but what really caught my attention is how difficult JavaScript is, but even worse, CSS. What got me bursting out loud laughing: • how difficult it is to float something left, without impacting other page elements • how it actually might be impossible to put two words on top of each other, without resorting to JS • We have a mental image of how uber-engineers like John Carmack and Steve Wozniak write incredibly performant code — but they probably couldn’t do complex things in CSS either • And the mental image programmers have that any junior designer can work magic with CSS is probably false • He bashes the W3(whatever) standard, saying understanding it is almost impossible, and it less like engineering, and more like complex case law — you have to understand all the laws, decades of precedents, etc. • There’s a part where Feldman describes building a home page for Roc, his programming language, and couldn’t get the live REPL to look identical on Chrome and Firefox. Out of frustration, he made Chrome correct, and Firefox incorrect, even though he uses Firefox. • Pretty flipping outrageous. https://podcasts.apple.com/us/podcast/things-web-devs-can-learn-from-game-devs-with-casey-muratori/id1602572955?i=1000637228476
Thank you, @pez ! I totally want to up my CSS game. I envy watching people who can use it well — heck, even can make the claim that they know what they're doing!!!!
Maybe what is different between CSS and most programming languages is the globalness of everything you do. Without the right mental model you quickly build a house of cards. It may seem to be working, but then some little change somewhere makes it all come crumbling down. In a regular programming language you can dabble without the correct mental model and let your model adjust with time. The better you get at it, the more composable your creations. But already in the beginning there is some composability and a few rules of thumb can keep you reasonably safe. Not so in CSS. It’s a bit of an all-or-nothing deal. Kevin Powell can compose with CSS. It’s amazing to watch.
I agree HTML and CSS are the hard parts. I find Kevin Powell being worth following. https://youtube.com/@KevinPowell?si=Qo3afKanfhKE7KOn He’s such a wonderfully sweet guy and it’s obvious that he really loves css.
That sounds like a fun interview. I'll have to check it out! I definitely think UI programming could learn a lot from game programming.
I am really jaded from css being the severely broken defacto design language in the ie6 days. I understand the apis have matured a lot. But i still dont trust the language to be a destination for design nirvana. At least without a lot of composability abstraction layered on top. Which begs for a framework with extra computation (js, cljs, pre-rendered css like SASS or Garden, co-located html + css). And that makes the live-reload repl flow more complex Tailwind is convenient, but what is the cost of complecting names and values? Need to move beyond JIT compilation? I think for CSS to be most usable, there has to be a strong component model. Not just namespaced rules. Conditional logic based on local state. And leverage fine grained reactivity semantics. Maybe webcomponents solve this without requiring extra tooling? Ultimately i suspect CSS will remain too brittle and frankenstien to naturally support pure design play (like magazine layouts, or Flash canvas). (Not that that is appropriate or needed for all use cases.) I am sympathetic to reinventing the design wheel in projects like Membrane (or game engines), rather than continue wading out of this 20 year tarpit. (worse is worse)