Several years ago I wrote about how I think React is junk. The article proved popular and led to a few follow-up's. My recent “Bad Examples” article got me thinking back to that, and how I really dislike all of these scripting frameworks. So I figured it’s been at least a couple years, let’s put something else in the crosshairs.
To me, systems like Angular are hard to learn, way more work, and generally are used for things I would NEVER use client side scripting for in the first damned place. The claims of merit ring false, and in the handful of cases I would do things with client side scripting I can and would do so in a fraction the code letting HTML and CSS do the heavy lifting, and skipping a lot of the “proactive paradigm” career educator bullshit bingo that just makes everyone work harder, not smarter.
And that brings us to the first majorstrike against it:
1 : It’s Usually Used “Client Side Rendering “ (CSR) Only!
Whilst there are plenty of scenarios where CSR is warranted, for the most part every time I see Angular in use it’s on websites where it ends up an accessibility violation. Users (or their employers) oft disable scripting for various reasons and/or creates issues. For example:
- Just plain distrust. This is common for employees in data centers, call centers, and medical.
- Technological limits such as in the third world or remote locations, where low power devices or restrictive bandwidth limits make the bloat — YES I SAID BLOAT — of scripting answers impractical.
- Outright incompatible or inaccessible with certain user-agents such as braille or search. The latter has gotten better in the English speaking world with Google doing a far better job of trying to get search working, but you’re still ice skating uphill and remember, Google is in third place worldwide behind Yandex and Baidu. Try not to be so Anglocentric / Americentric!
Now sure, you can via “universal” use it to make SSR (server-side rendering) pages, but at that point you’ve built such a bloated convoluted mess it should be sending you running and screaming to either native node.js (is the HTTP module’s “Response.write” with template literals really so hard?!?) or PHP’s…