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 WebForms (yep). From this experience, I often received some opportunities to work using pure JavaScript clients, and my first movement was dive into jQuery world.

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 jQuery to 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 AngularJS and React. 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 Ember, Aurelia, 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 Angular and 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 MacOS. 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 JavaScript. I sit down and studied lifecycle, components, props and state, reactivity, HOC’s, Redux. Then I learned the Expo wasn’t 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 Nest.JS and ASP.NET Core all the way up, but this is for another day :)

Ygor Lazaro's photo

Ygor Lazaro

Rio de Janeiro

ygorlazaroygoronline
Write your comment…

16 comments

Ygor Lazaro Nice one! We also moved from VueJS to ReactJS! I'm writing down a detailed blog post.

Show all replies

Gijo Varghese We are aiming to produce high quality and well researched articles through Hashnode Originals. You can find the detailed announcement here: hashnode.com/post/hashnode-originals-open-f..

Let us know if this interests you! :)

Reply to this…

Share your programming knowledge and learn from the best developers on Hashnode

Get started

Its not vue fault. Its the community. There will be XYZ, ZYX God knows whats next. You are indirectly referring to the terrifying pace of JavaScript and how the packages are pilling up on top of each other. How there are 7x tools for the same thing.

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.

Show all replies

Vue.js feels more like a library to me. That's why I love it.

IMO: JS + compiling = Oh, those wacky kids.

Reply to this…

Oh look a "I didn't like a change so I did a change anyway" blog post!

Kind of! :D

Reply to this…

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 !

Show all replies

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!

Reply to this…

…and for sure, not mobile.

Ever heard of NativeScript-Vue?

Reply to this…

Load more responses