Imagine you’re working on a new project. And you’re debating what technologies you should use. Ah! THAT moment again.
Alright. Fair question. Like, it’s actually fun. After all, you get to play with all-brand-new toys on GitHub. Somebody even pays you to do so. Whoohoo! Wonderful.
You have an idea. Let’s just go with a NICE little API built with Node.js. Ruby on Rails. Whatever. Something like that. Then, you get to pick whatever the hell you want for the client. Huh, what do you think?
Sure. There are SO many different options to choose from out there. You can do React. You can do React with Flux. You can do React with Redux. You can do React with Backbone. You can do Angular. You can do Vue.js, have you heard of Vue?
Here’s the problem: Adding stuff to your application makes it heavy. Making it heavy early on in the process will kill your application.
Heavy stuff is usually harder to keep in sync. Harder to keep consistent. Harder to manage. Harder to change.
There is an easy fix: Don’t add complexity unless you absolutely must. Instead, use an inexpensive approach like PJAX that keeps your entire architecture in place, where your backend produces HTML, and not just data.
I’m NOT saying that Angular is bad software. It’s not. It is, however, most likely the right choice for about 1% of applications. And it’s not yours.