My question is: Given the dire situation we have, the divided web development community we have, where do we go now and what comes next? How do we cut the Gordian knot? How do we reconcile?
First of all, do we want to reconcile? Or are we fine with the divide? Are we fine with bridges burning? Are we fine with smart people on both sides ridicule and insult each other? Is this the new normal?
I don’t have a grande theory that explains how we got into the current mess. I have a rather technical explanation: Path dependence and technology lock-in. We didn’t start with the React single-page apps we have today. I was a series of small steps where each step seemed rational and logical at the time but lead to a poor outcome.
There are also several economic explanations for React’s rise to power and continued dominance. For example, in 2019, Charlie O’Hara described React as the Fordism moment that commodified the web further. With React, Facebook introduced an assembly line that standardized the work for developers, turning them from artisans into factory workers.
“Islands” is the rebranding that progressive enhancement never should have needed.
The problem with progressive enhancement is by nature, it means you have to care about users, whereas “Islands” means developers can continue pretending users don’t exist.
– Andy Bell
Two-thirds of your front-end logic was server-delivered, declarative HTML and CSS. The other two-thirds was imperative, low-level jQuery DOM manipulation, event handling, setting classes and inline styles.
Yes, there was roughly one third overlap and duplication, but no proper connection or binding. There was no easy state change and automatic DOM update. This was a developing nightmare.
More importantly, such interfaces were error-prone and brittle. They failed their users. A user could easily get into a kaput state.
Last but not least, if we tell web developers to “use Progressive Enhancement, duh!”, especially developers bogged down in React single-page apps, we need to bring along a bouquet of tutorials, best practices and case studies that reflect their needs.
I’ll stop here, you get the idea. These are questions me and my colleagues are dealing with every day.