DEV Community

Discussion on: It is ⌚time to ditch ReactJS or Angular and use better web standards like web components😍 part 1

Collapse
 
jrista profile image
Jon

While I fully understand the sentiments here, I think the article may have lost sight of WHY frameworks and libraries like Angular, Vue and React exist in the first place. I really love the idea of true open, complete standards. I can't wait for the day when we can build pure standard components, when PWA is the only kind of app, etc. Wonderful dreams! Lacking in reality, though, most of the time.

There are reasons why we have frameworks like Angular and Vue, though. Why we have libraries like Polymer and LitElement. To one degree or another, the core standards usually don't go quite far enough to really provide a complete solution that does not just solve a particular problem, but solve all the problems on the table, as well as support the infrastructure of validating them, deploying them, and keeping them maintainable, etc. They tend to lack opinions where opinions are useful, and often lead to "wild west" style projects that lack cohesion, consistency, etc. that can leave projects rather messy and unique (i.e. not easy for future developers, long term maintainers, to take on even if they have general experience in "Library/Standard X").

React in and of itself isn't even a framework. It is a library. And React itself is usually not enough to get the job done on its own. You will usually find other libraries glued together in a React product because of this shortcoming. Similar problems usually arise with "plain old web components", as they solve a problem, but are not a complete solution.

Angular gets a lot of rap from...many on the other side of one fence or another. The big thing Angular has going for it, though, is a consistent, reliable, and effective pattern for designing, building, deploying and maintaining simple apps through large scale, enterprise scale, applications. I think Vue is coming a long way down that road now as well.

These frameworks are complete solutions to business problems and the process of solving them, not just a solution to a particular problem inherent in leveraging the web as an applications platform. Components are a part of the machine, but not the whole machine itself. In real-world product development, we usually need The Whole Machine. ;) Further, that consistency and cohesion provided by a framework like Vue or Angular has solid benefits for long term projects that may move through many developer hands or many dev teams over their lifetime.