Liskov’s Gun: The parallel evolution of React and Web Components

https://www.baldurbjarnason.com/2024/liskovs-gun/

This is a bit of an experiment. Probably the longest essay I've published directly on my website. 🙂

Liskov's Gun: The parallel evolution of React and Web Components

Web dev at the end of the world, from Hveragerði, Iceland

@baldur Fantastic post. My only minor quibble is that I do think the React team has kept innovating – concurrent rendering and RSCs come to mind. Although I'm not convinced the first is a great idea (https://nolanlawson.com/2022/10/22/style-performance-and-concurrent-rendering/) and the second seems to be heavily dividing the React community, I have to give them credit for having the guts to try new stuff even though they're the clear market leader.
Style performance and concurrent rendering

I was fascinated recently by “Why we’re breaking up with CSS-in-JS” by Sam Magura. It’s a great overview of some of the benefits and downsides of the “CSS-in-JS”…

Read the Tea Leaves
@baldur BTW I never understood the whole Liskov substitution thing until this post. It's not just a problem for built-ins, but also web component libraries that allow subclassing. Any change to the superclass is effectively a breaking change unless the subclass automatically gets the new behavior somehow (e.g. super.connectedCallback).
@nolan @baldur This was always true! We wanted to add traits or some other factoring mechanism to allow for decomposition, but TC39 could barely do intrinsic subclassing w/ `class` syntax in a ~timely way.
@nolan @baldur DOM is crying out for decomposition to mixins/traits, and we hoped to do it. But browser vendors whatabouting without actually investigating developer problems (and failing to implement what they stopped the presses to relitigate) dragged everything out.
@slightlyoff @nolan I would have loved to see mixins/traits.