Why I am moving away from Vue.JS
As developers, we need to be up to date with all technologies, and it wasn't different with me. My main stack most of the time was
.NET, building API's and services using
ASP.NET MVC and
On the first sight, 2011, it was a great mess to build something to web. See, I was living in a world full of Explorers and an incipient new Google browser, make an app compatible with all this wildness was... wild.
jQuery came to me as a freeze and fresh breeze of air. I could iterate the DOM with ease, make
XmlHttpRequest calls (I am feeling myself too old saying this), and add new dynamic content to the page, in a way
Razor couldn't make it. Of course, I've put
jQuery everywhere. Of course, it was a mess.
No longer after that, I started working with
AngularJS. It solved a lot of problems I had back then, such as maintain my state and front synced and up to date, componentize all app's sections in (in an ideal world) small controllers and "components", and I could use dependence injection, with I always loved, but I didn't have the opportunity to work with until then. Angular came to me as a freeze and fresh dush shower, and I saw it was good. Of course, I've put
AngularJS everywhere, migrating existing code to, and making new projects in. Of course, it was an enormous mess.
Then came Google, the same Google again, saying all my knowledge in its framework would be kind of unusable, since they were building a new version of
AngularJS, not being
Angular at all. Even now I have no idea why they did this, instead of building this new framework with a new name. Why on Earth they needed two Angulars? On my mind, Angular today has to many angles, it could be called "circle" :)
I went to the web and search for the next step then.
React was already a thing, growing in a ridiculous pace. But I have some problems back then I was indeed looking to solve: maintain my current codebase (migrating from
AngularJS was pain enough to me), reuse most of my skills I had in
AngularJS way-of-life, and be in the middle way between
Vue was in its infancy, so it was not easy to pick it and learn.
I did some small project’s (to-do apps) using
Knockout. Gosh, I even tried
Backbone. When I decied to visit the
Vue’s documentation, was a love at first sight. Easy to learn, all integrated in components, directives (yes, I still have some kind of compassion with), and in a day I was able to put code in production learning alone, without knowing someone working with
Vue.JS. I was in version 0.12, and I was starting freelancing for real, so I thought my clients wouldn’t care about the technology stack. They just wanted the job done.
Was a long two years inside this platform and community. I went to some conferences and saw people doing very well-crafted code, learned
Typescript (what can we do to make
Typescript the de-facto standard on browsers?), made some money and I had the opportunity to puot back effort on my backend devtools, using
Linux on my primary machines, and
.NET Core powering all. Of course, I’ve put
Vue.JS everywhere, and was beautiful, was not a mess. I had full control in all my code, was a perfect world.
Then came a client and offered me a job to make and cross-platform mobile app. They already had jobs in
Vue.JS. I know enough to now put efforts on
Ionic or other hybrid solutions, at the same time I love my
Linux machine, and I didn’t like the idea to use a
Native Vue was not huge, and all of this left me with one alternative.
I didn’t like
React at the time. I came from
Vue, it was everything so easy to build, and
React is more abstract, more direct, more… pure
Redux. Then I learned the
React, just a framework over a framework, with builds natively. Some weird concepts I felt into but it was good.
Today I feel myself a over the average to great
React developer. I did some others
React Native apps, went to web, did some great apps using sockets,
Firebase, a brand-new API
Node-powered, dashboard apps, and I get traction. And then, when I was relaxed about the life, the universe and everything, one of this last Vue projects of mine come back to me. And scared me.
Vue.js launched a new version of its CLI, using
Webpack 4. My old project automatically became incompatible with itself. New components were not that easy to be added, and modified. The code became a mess a lot faster. And the market as a whole doesn’t care.
The mobile is literally eating the world. New projects are created in a pace never seen before. And the wages are only increasing, freelancing positions are being created faster and faster, and React won this by far.
Vue.JS maybe still good to work these days, but not at my team, not mainstream here in Brazil, and for sure, not mobile.
The same me two years ago would cry saying these words, but today I’m fine with this. And consequently, I am moving back to backend, using
ASP.NET Core all the way up, but this is for another day :)
Learn Something New Everyday,
Connect With The Best Developers!
Ygor Lazaro Nice one! We also moved from VueJS to ReactJS! I'm writing down a detailed blog post.
The horrendous dependency chain of npm, God! it makes me angry when i see bable, webpack, gulp, grunt, preset this preset that for a very basic purpose, it makes it difficult for a dev to catch up. If you want to use import instead of require install 20 other dependencies!! What? I am not exaggerating. If the community would focus on ONE thing and not making a package for every God damn mosquito in the air things will be so stable. Not coding on the frontend anymore.
I think these npm deps and the craziness need to be managed in a better way for this to sustain. What you said Faiz is exactly my turn-off as well. So many things to setup ahead of time and then when it comes to deployment there's a hell to cross...that's one of the major turn-offs for me, other than that I love working within the dynamics of React.
Hello Ygor and thank you for this great article. I am just about starting a platform migration of my ASP.NET/jQuery app and looking for best choice. For some time I thought backbone is the right way to go, then I discovered Vue and thought I love it. After reading your post I started having my doubts. Would you recommend something, given my dev platform will be Visual Studio and server-code C# ? Thanks a lot !
Hi Pete, great you liked my article! You seems to be something like me, I also did my movement from .NET (C# mainly, VB in my teens ages). Then I moved to front development in 2011, at the time jQuery, after this AngularJS, VueJS and React, in this order.
From my humble opinion: if you need to go fast at development and finish some kind of job, keep stick with .NET, do you job, make you make and see where your project are going. For example, when I need to test an idea or mock some solution, mainly I do it in .NET, despite I am a very strong JS/TS developer.
Are you studying for a new position? So in this case I recommend you go to React. Is the market-standard-for-today-and-goes-on. Sadly from my point of view, since I particularly don't like React as a paradigm.
Vue.JS had its moment, but particularly I think it's passed. I still maintain some Vue.JS projects in production, but I strongly recommend against it, since it has a minor popularity, despite its developers community, and they are studying make some changes that will make Vue.JS a lot closer to React than before.
If you wanna go hipster, you always have the chance to use Elm #justkidding.
But, if you really want to make things done, do it .NET all the way down, and go injecting React when needed. This is the way I am doing for my personal projects and works like a charm. For my clients, I still mostly do React and RN. There's no better alternative (again, in my POV).
I wish you success! :)
Hi Ygor, great to hear from you. I like your article very much because it shows you have hands-on experience and understand the consequences of our choices. As you honestly pointed, in old days no matter what we tried we ended up with...mess. This is the status of the code I am trying to migrate to something new. It is ASP.NET/jQuery spaghetti-style mess. Anyway, I greatly appreciate your insights , especially about Vue. As per your recommendation, I am going to take a deeper look at React it because it might be the right choice. Although, you say "I particularly don't like React as a paradigm". This means a lot. I've been working in settings like that and never liked when I've got to use tool/technology that I am not fond of. I wish you the best and would love to see an article about React - if you plan writing such... Cheers!
Senior Software Engineer @teckro, Experienced mentor @codeinstitute, Technical Writer @fixate.io. Tweet me at @nerdokto
You only use what it's best tool for your use cases. For example React has a bigger Ecosystem than Vue in Mobile Applications unless you plan on doing something like PWAs only.