DEV Community

Discussion on: Should I use frameworks or libraries such as Angular, React, or VueJS or not?

Collapse
 
kspeakman profile image
Kasey Speakman

I have done front ends in pure JS, jQuery, Kendo UI, Angular 1.x. Nowadays, I am pretty down on UI frameworks with heavy abstractions. It feels like you have to learn a very large amount of incidental knowledge that does not transfer to a different framework or platform. Why can't I just use standard computer science things to translate objects into UI primitives?

I've begun to realize that's exactly what my team is doing now that we are using Elm (a language / platform that compiles to JS). Elm can feel like a large learning curve, but it turns out not to be incidental framework-specific knowledge. It's learning how to properly use functions, types, and separate decisions from side effects. That knowledge transfers, even to OO. You can integrate Elm into jQuery applications (through a feature called Ports), but they cannot both be manipulating the same DOM elements. Elm uses a DOM renderer similar in principle to React's, so it will detect differences in the DOM and overwrite changes from jQuery. I would recommend carving off a piece of the app that is fairly self-contained to avoid using ports that much, because ports are one of the pieces of incidental knowledge.

Introducing Elm to a Javascript App

So anyway, I would suggest Elm. But fair warning: it will challenge you to think about problems very differently from jQuery. Totally worth it though.