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 :)
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.
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 !