Whenever I’m coding live on Twitch, I get asked why I chose Vue.js instead of React (or Angular, or Svelte, or [enter your favourite framework here]).
My answer is always: Because it’s tightly integrated with Laravel and I enjoy working with it. Boring answer, huh? This is coming from the guy that built madewithvuejs.com?! Doesn’t he have like.. good arguments about performance and stuff?
The thing is: I hate discussions about tools. And I’m going to tell you why I think it doesn’t matter what you choose.
This is not limited to JavaScript frameworks, but I’m going to write this article now to be able to share it in the Twitch chat with people that ask me why I chose Vue.js! (Hi, Twitchers!)
Developers get religious about their tools fast.
There always have been camps:
Every camp is praising their choice, forgetting about disadvantages and talking down the other camp, forgetting about their advantages.
It’s as if we need to prove to ourselves that we made the right choice. In reality, it doesn’t matter. If you ever wrote code in React, you will be able to switch to Vue.js if you need to. So why should you insist on always using React?
Using one framework or the other is not a life choice! You will not be un-hireable if you chose the „wrong“ one. If you try out one framework, you will always learn things you can apply when coding with the next one.
I’m a freelancer working in a lot of different development environments. I often do not get to choose what I want to work with.
This project uses knockout.js? Alright!
This 7 year old website needs a new jQuery feature? Alright!
You use backbone? Ember? Alright!
I have worked with all the currently big JS frameworks/libraries and with many smaller ones. I can work productively in all of these projects in little time because I know the basics of how things work with JavaScript. For everything else, I’m a very proficient Googler. ¯\_(ツ)_/¯
I think many developers are afraid of switching to different tools because they get comfortable with the features of their stack.
Nowadays, a lot of basic work is done by frameworks or libraries. That’s great for efficiency! But if you don’t understand the underlying processes and principles, it can be hard to wrap your head around a different implementation thereof. So it will be harder for you to understand how different frameworks need to be used to do the same task.
You’ll be more defensive of your tools if you’re afraid you’re not able to handle a different stack. Please don’t be!
If you’re nervous about using a different (JS) framework, try to brush up your understanding of basic programming concepts. (Don’t get offended now, please!)
I have seen a lot of Juniors struggling because they didn’t really need to understand basic concepts before. They started with learning a framework, got results fast and never needed to go a level deeper.
It's not because they're stupid. They just have a different approach to programming because they always had these tools available!
If you know about basic programming principles, you as a developer will be future-proof. You won’t be a Vue.js Developer any more – you will be a Software Engineer. You’ll also be great at debugging.
I choose Vue.js for most of my projects because I feel really comfortable with it. I think the code’s clean and readable for anyone. It’s flexible. All in all, I just like how it approaches things. Also, it’s a perfect match for Laravel, my PHP framework of choice.
You might feel more comfortable with React, though. Good for you! Choose whatever looks good to you.
Yes, of course, there are technical differences between JS frameworks. But who knows – some of these considerations might not even be valid any more in 6 months!
Also I’d argue that for most things you do, the bottleneck will rather be your code than the framework. Especially if you’re just starting out.
I think the most important thing is that you pick a framework already and start developing real things with it.
If you solve real problems with a framework, you will get a lot of insights into its advantages and limitations. You will learn how to make things work with it. If you happen to dislike this one, just try another! Don’t overthink this.
There should be no rivalry. No camps. Only great solutions and products made with different, powerful frameworks and libraries. That’s why we do not only run the site madewithvuejs.com but also madewithreactjs.com. And if you want to build something with jQuery, please go ahead! I'm supporting your choice 💪🙃