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.

@nolan Thanks! And, yeah, I'm definitely not giving React much credit or even the benefit of doubt.

Though, I think it's fair to say that the jury is still out on a lot of their innovations and that they don't really make up for the overall harm that comes from React's popularity

And if they do come up with something genuinely novel and reusable, people can always steal the idea 🙂