The failed promise of Web Components

Seen on HN (see comments)
The failed promise of Web Components from the excellent Lea Verou (@leaverou)

here the intro

Web Components had so much potential to empower HTML to do more, and make web development more accessible to non-programmers and easier for programmers. Remember how exciting it was every time we got new shiny HTML elements that actually do stuff ? Remember how exciting it was to be able to do sliders, color pickers, dialogs, disclosure widgets straight in the HTML, without having to include any widget libraries?

The promise of Web Components was that we’d get this convenience, but for a much wider range of HTML elements, developed much faster, as nobody needs to wait for the full spec + implementation process. We’d just include a script, and boom, we have more elements at our disposal!

Or, that was the idea. Somewhere along the way, the space got flooded by JS frameworks aficionados, who revel in complex APIs, overengineered build processes and dependency graphs that look like the roots of a banyan tree.


Oh that bring back stuff …
see from 4 years ago that post Couple of interesting things we can learn from JavaScript

where I concluded

it just does not seem fucking ready…

so let’s see how things have changed in ~4 years
first, Google Developers Web Tools

2016 (Web Archive)

2020 (today)

OK, so Angular and Polymer are still there but Web Starter Kit and Polymer Starter Kit and PWA Starter Kit are all gone

Web Starter Kit (2020) (Web Archive: 2016)

Polymer Starter Kit (2020) (Web Archive: 2016)

both indicates

Warning: The Web Starter Kit is no longer supported. If you are interested in building apps out of Web Components, try the PWA Starter Kit. The PWA Starter Kit uses LitElement, a lightweight base class for Web Components brought to you by the Polymer Project.

PWA Starter Kit (2020)

This project is no longer under development.

and finally, LitElement (2020)


See?

The lifetime of frameworks and other web components practice is pretty pretty pretty short,
it seems the only constant in the HTML/JS world is that everything change all the time.

And let be clear, “change” is not the same as progress or evolution, here the change I’m talking about is you have a hell lot of people who build a lot of stuff to try to fit a square into a circle and after few years they throw it away.

Or here, like the post correctly point out

Somewhere along the way, the space got flooded by JS frameworks aficionados, who revel in complex APIs, overengineered build processes and dependency graphs that look like the roots of a banyan tree.

So I’m not here to say “hey look I was kinda right 4 years ago”, but still my warning is:
invest your time wisely.

As an indie dev I do not have the time and resources to invest in tech that change every couple years, I’m OK when the change is progress / evolution / more features / etc. , absolutely no problem to learn new things, but shiny things that vanish in dust later are a huge waste of time.

Please continue reading The failed promise of Web Components


Perusing the components on webcomponents.org fills me with anxiety, and I’m perfectly comfortable writing JS — I write JS for a living! What hope do those who can’t write JS have? Using a custom element from the directory often needs to be preceded by a ritual of npm flugelhorn, import clownshoes, build quux, all completely unapologetically because “here is my truckload of dependencies, yeah, what”. Many steps are even omitted, likely because they are “obvious”. Often, you wade through the maze only to find the component doesn’t work anymore, or is not fit for your purpose.

where the author goes into all the gritty and dirty details

and also remember all those stuff that vanished over the last few years,
apparently from the Google Developers Web Tools website now you should go with LitElement which apparently “solve the problems” of web components that Lea Verou describes.

Yes, “solve the problems” is in quote because I do not believe it, or at least I believe in a couple years it will have changed yet again.

Anyway, good reading.

5 Likes

Great reading, plenty of devs must feel like this. There is a movement very strong that goes back to the basics HTML, CSS, Javascript…I would ad Jquery, anything else can change within a few months.

man … I could literally comments and talk about this for days
I got examples, horror stories etc.

and mind me I’m not saying that HTML, CSS and JavaScript are bad
but like any other tech, there are main current that everyone follow blindly without thinking

on one side, you’ll have dev who see a web app as only 1 page where you load everything,
be it JS frameworks, be it web components, or a mix of the two, and that often produce a bad bad bad results

on yet another side, let’s say the low-tech approach where a web app is driven by the server
following the HTTP verbs, multiple pages and if some need interactivity some vanilla JS (You might not need jQuery) to some JQuery is used, and that just works

simply put nobody think hard enough on what is a web app

4 Likes

That’s why investing time to learn framework X in JS world is very risky.
Because even those FWs are maintained by Google, it can fade away.

And remember that Google has reputation on “sudden changes” at whatever shits they develop. It happens to Angular, Dart, to YouTube , and what listed above.

And I bet, the currently hyped FW (Flutter) will be treated the same tho.

1 Like