If you haven’t jumped on the Vue.js train yet, it’s time to jump on the Vue.js train.
This post is an unapologetic attack on other front-end frameworks and a blatant recommendation for switching to Vue.
Why not Angular?
Angular 1.x was my go-to for front-end applications. I liked it. It was hard to learn, hard to master, but it was powerful and got the job done. The community was massive, and just about anything and everything already had a well-supported third-party package.
I had mastered the workflow. It was smooth sailing. Work got done, and it got done well.
Then Angular 2 was released and derailed an entire community. I tried to like it. After all, it’s from the Google team, some of the most talented engineers in the world made it. All these hoops they set up that I had to jump through to set up a tiny little “Hello world” app had a reason beyond my understanding. I’ve come to realize that all these hoops they said up for “reasons X and Y” are arbitrary and honestly not really issues at all.
I even created a project starter for Angular and put it up on Github. Developers liked it and started using it, but I decided I hated Angular 2 and abandoned it.
Angular 2 is overkill. Plus the templating syntax is horrid.
Why not React?
The whole concept of JSX is forced. How many syntax conflicts do you think they had to make compromises for trying to fit HTML in JS? I don’t even want to know. But with Facebook’s massive dev team and funding, they somehow forced JSX to happen.
People knock PHP all the time because it mixes code and markup, then JSX brought it back and I was curious if they figured out a way to make it clean. So I tried it. I pushed through trying to get myself to like it. The whole time I was thinking to myself, there must be a reason it’s so popular. But wow, the templating gets out of control fast. You have to refactor an unmanageable amount to get some semblance of order with JSX. So yea, mixing HTML and JS just doesn’t work. JSX was forced through by a massive Facebook dev team.
Don’t even get me started on Redux, which is another over-engineering mistake. Someone somewhere said mutating state is bad. The React community then decided to turn immutability into a religion. Never mutate state, they said. It’s evil. It’ll cause a bug somewhere that’ll be hard to find! Then they created Redux. Now when you want to do this tiny little thing you have to jump through 20 hoops to do it. But now you have a 10% less chance of getting a bug! Totally worth the 3–4x time and 5 extra layers to work through to get anything done. Then they go around preaching about how amazing Redux is when really it’s just a waste of time. Please, stop with this immutability nonsense.
Vue. Is. Dead. Simple.
One week into using Vue to build my next failed startup application, I was more productive than I ever was with Angular 1.x, a framework that I had mastered.
It was enjoyable. It was powerful. It was intuitive.
With Vue, no matter how large the application is, it’s always easy to know what’s going on. You never need to “take a second” to figure it out because everything just makes sense.
They don’t set up red tape everywhere because “arbitrary reasons X, Y and Z.”
The simple nature of the core Vue application rubbed off onto the rest of the community in that everything is straightforward. With React in particular, there were a lot of conflicts with different third-party packages that were relatively large in scope. With Angular, it always takes 20 steps to get anything set up.
So if you haven’t dug into your heels ready for a fight, my recommendation is to try using Vue for your next application.
What about the other frameworks?
I honestly don’t care about them.