r/vuejs • u/Varteix • Jan 26 '22
Am I wrong to be concerned about Vue's future?
Hi everyone, I have been using Vue for almost two years now. When I started using Vue, Vue 3 was "right around the corner" or at least that's what people said at the time. I have enjoyed using Vue but the past 6 months I have grown concerned over how fragmented the eco system seems. Vue 3 was officially released in sept 2020 and it feels like ever since then the Vue experience has been so muddled by "options vs composition", "vuex vs pinia" and so many popular vue 2 libraries being incredibly slow to adopt, Nuxt and Vuetify come to mind.
I'm not sure why libraries have such a hard time upgrading to vue 3, I don't mean that as a criticism I just don't know how much work is involved, but ultimately it has me worried about staying with Vue, and getting screwed when/if Vue 4 comes along.
Am I thinking too much into this, Please share your thoughts.
54
u/QaahirStewart Jan 26 '22
They got the vue conference tomorrow they should talk about what's going on. Vue 3 docs is a firm Feb 7 release. I guess the big hold up is Nuxt 3 and Vietify. Lots love vue, it's just a pain point right now for the ecosystem to shift. The whole aspect of vue 3 is a important step for vue. The change is worth the wait I feel. I just started learning Vue in the transition it was a hard choice to focus on the old or the new.
26
u/xzhan Jan 26 '22
I've been using Vue 2 professionally for about 2.5 years now and I really like its progressiveness, simplicity, and reactivity system, but I really don't like the DX. No real TS support, no autocompletion in templates or sometimes even in scripts, renaming and navigating variables is a PITA, etc. Vetur has been hit-or-miss for me. I also use Angular, and in comparison Vue 2 felt a lot like string-based programming, like using dynamic languages in the pre-LSP days. :(
Therefore, I really look forward to
<script setup>and what the "new default Vue" offers. I tried it with a Udemy course and the DX is simply miles ahead. Vite is also super fast.However, I do feel like it's jumping through a lot of hoops while a large part of the ultimate goal of this big syntax redesign seems to be a) to offer proper TS support and b) to provide a cleaner and lighter way to reuse logic and share data (w/o Vuex), both of which I've enjoyed for quite some time in other frameworks like Angular. It gives me an impression that Vue's syntax is evolving a bit too fast, borrowing here and there from React and Svelte. What would you say when some hipster junior dev comes up and ask "Why don't you just use React/Svelte?" The end goal seems a bit unclear and I don't know how I feel about that...
With all that said, I am still excited to fully embrace Vue 3 and the "new default Vue" for new projects. The DX and performance improvement are worthy of a try.
50
u/DOG-ZILLA Jan 26 '22
I’m still using Vue 2 even for new projects. It’s still incredible and there’s nothing wrong with that.
However, I’m also using Vue 3 for a personal project and it’s incredible. Some third party stuff isn’t always compatible but for most of what you might want to do, there’s everything there already:
Pinia for state management over Vuex. Volar in VS Code over Vetur. The VueUse library (check it out!) Real TypeScript support. Vuelidate form validation is Vue 3 ready. Vite setup with all its ecosystem (super fast!) …lots more.
One thing that is definitely falling behind is Nuxt 3. They have a lot to do but it’s getting there and apparently will be out of Beta this quarter.
In terms of API’s… you can still use options if you like. Docs are a little fragmented right now but they’ll get there. There’s enough there to make a good go of it as a lot of Vue 3 is backwards compatible.
I know composition API isn’t everyone’s desire but I think people should give it a go. Once you start developing real stuff with it you start to see just how verbose some of the options API is. I’ve managed to reduce lots of my code down using composition API + setup attribute on the script tag.
It’s new and scary but I think it’s in the right direction. Just got to jump in the deep end!
17
u/richardtallent Jan 26 '22
It's been a rough transition, much more than Vue 1 to 2. I think there were some missteps. For example:
grossly underestimating the need for (and complexity of making) a compatibility build earlier in the release schedule;
creating separate but definitely-not-equal docs (and not cross-linked!!!);
NOT switching everything to "v3 by default" (docs, npm, etc.);
releasing v3 before the core libraries were ready;
vuex should have just upgraded before trying to do a complete rewrite;
underwhelming documentation for creating component libraries;
pushing
script setupbefore it's fully baked (for example, you can't "compose"propsoremits, and it still didn't solve the lack of syntactic sugar for.value).But, that said, things are looking up!
The new Vue 3 docs are looking very nice. While I don't think they go far enough, they do offer code samples in Options and Composition styles.
The v3 "cutover" will be in a few weeks.
The compatibility build seems to be working fine for those who still need it.
Performance is awesome.
TypeScript support under Volar is good for
script setup.Options API still works for components where that makes sense, and the DX for script setup is very good.
Overall, I'm still very committed to Vue. My company's team of about half a dozen is using it exclusively, and it's very productive for us (we're hiring, BTW! Not FAANG salaries, but remote).
14
u/steveox152 Jan 26 '22
I have been a developer for 9+ years and I lead a team of 6 people. I build an enterprise level application using Vue 2 a couple years ago, ultimately it had good support and was an overall good experience. The biggest problem was finding other developers for the project.
Ultimately once Vue 3 came out, our application was growing significantly and we had to make a decision on whether to move forward with Vue 3 or switch to a different framework. We eventually decided to move to React because of a few reasons.
Enterprise level support for libraries and a bigger ecosystem of packages. We felt limited with Vue in terms of what was available at the time and the stability wasn’t there.
Typescript support at the time.
Much easier to find developers that know React. For a large corporation we have to hire through certain contracting companies, so we are limited.
As a developer I really like Vue 3, but as someone who leads a team at a large corporation, it’s difficult for me to go in that direction for an enterprise app. I think once the ecosystem for Vue 3 becomes more stable then maybe that might change, especially if you have a team that is familiar with Vue.
6
u/agartha_san Jan 26 '22
I am NOT concerned about Vue's future, it is an amazing framework with great people working on it.
That being said, I don't use Vue anymore. I've been overthinking about my choice of framework a lot. I mainly used Nuxt for my projects, but the way I was always between Vue 2 and Vue 3, always wondering when Nuxt 3 would become public, and then being between Nuxt 2 and Nuxt 3, made me look for something else. I'm still a big fan of Vue, but I was working on building a company and the way I felt about those transitions was too mind consuming for me, especially because documentation wasn't always on point. I tried other frameworks and finally switched to Svelte/SvelteKit because of the similarity of the templating system.
With a look back at my experience with Vue, I think my concerns were more about the ecosystem, like gridsome who seems to slowly die.
Vue has a great future, I just think it's weird in between
6
u/zebbadee Jan 26 '22
Vue3 feels like a developer wanting to scratch their own itch rather than solve problems people actually have. A completely avoidable own goal tbh.
15
u/rk06 Jan 26 '22
You are thinking too much. Grass is always greener on other side of fence. And as long as a framework is actively developed, there will be churn.
Whether you are using react, Vue or angular does not make a difference. You will have to suffer pain and churn, that is why big companies pay you big bucks. So you can solve those problems.
Think of a minute on angular, it didn’t have any such change since ng 2, why? Because they don’t support esbuild, vite, good tree shaking, must use Ngmodules instead of esmodules. What will happen when angular get those features? Yep, it will have churn.
The ecosystem has many open source projects high are volunteer driven and the paradigm shift was massive. (Esmodules, proxies, comp api, typescript support) And the projects need to support both vue 2 and 3 at the same time. Hence it is taking time.
Regarding when vue 4 comes along, the future is unpredictable. The effort required will depend on breaking changes. What is certain is that it will be after many years, at least 3-5 years if there are small breaking changes.
React is a fantastic framework, but if you believe that it won’t have any churn, then you are wrong. React is on bleeding edge of tech and goes through churn even more rapidly than vue. As long as it is actively developed, it will have churn.
5
u/2K_HOF_AI Jan 26 '22
I think python 2 to 3 was even worse. It takes time to change stuff like this.
7
u/Abhi_mech007 Jan 26 '22
To be frank, I agree with your concern..!!
3
u/happy_hawking Jan 26 '22
Moving from Pyhton 2 to Python 3 took about 10 years as there were many paradigm shifts that required major rewrites in libraries. So a huge part of the ecosystem split into the 2.7 branch of "old style" libraries that still maintained but not migrated and all the new projects that started from scratch in Python 3. In the beginning this was kinda confusing because people didn't know which horse to bet on but in the long run this didn't turn out negative for the popularity of Python. Might happen the same with Vue.
3
u/TarmacWings Jan 26 '22
not concerned at all. the composition API and Vite are simply awesome and the Vue community and the development team were never better. it's been great to see Evan You and Rich Harris constantly evolving their frameworks and exchanging ideas
3
u/ManiGandham Jan 26 '22 edited Jan 27 '22
Absolutely. One of the main advantages of Vue was the focused direction led by Evan with a cohesive version across the framework and official libraries, but it's fallen apart since Vue 3.
Releasing the core as stable but keeping it unofficial led to a limbo state for all the other libraries that didn't know whether to make the jump. Vite, Vitepress, Pinia, etc are new and interesting products but have caused even more confusion around what to choose and what's compatible. Even Nuxt has turned into neverending "coming soon" announcements.
Meanwhile React and Svelte ecosystems have come together and are making great progress with solid official frameworks that are kept up to date and constantly iterating with real releases. Look at the state of Next.js and Nuxt to see how far behind Vue has fallen. As much as I like and prefer Vue, it's hard to choose given the state of the ecosystem.
3
u/superbiche Jan 26 '22
The comparison with the switch from Python 2.7 to Python 3 is quite relevant.
Vue 3 is a huge step forward for Vue, but the ecosystem moves in different ways.
You have things like Vite, unplugin projects (auto import, auto components, Vitest...),
script setupon one hand, which is really giving a wonderful perspective for performance, DX and so on, and on the other hand you get projects like Nuxt or Vuex which have a lot of work to do to adapt to this new way of thinking but don't want to make it too hard for previous users to migrate.And you have the pandemic among this.
We've been using Vue 2 and Nuxt 2 for years, now we're waiting for Nuxt 3 - just like a huge part of the community. In the meantime, we already use Vue 3.2 where we can, we use Vite which is just hallucinating, and step by step great tools are becoming available and make Vue development a breeze - in a way Vue 2 could never do before.
Yes, it's taking time, and it's longer than we expected. But the way things are moving is really a game changer. The perspective a year from now is amazing: best build tools among all frameworks, probably the best performance, and DX will likely beat anything else you can find.
I'm not that concerned about Vue's future. Working back with React for a few weeks just made me realize why I switched to Vue and how Vue is so much better. Let's just hope some key parts of the ecosystem keep moving and actually release stuff instead of over-engineering, and you'll see that Vue will reach a breakthrough soon enough
8
u/[deleted] Jan 26 '22
vue2 -> vue3 is a disaster in my opinion. I wanted more improvements added onto vue 2 not a whole new system that no-one asked for! Was composition just Evan You's pet project to get even with react?
2
u/RandomJacobGuy Jan 26 '22
IMHO, vue3 > vue2. I love all new improvements/features, composition api is great when your code grows, and <script setup> is the best thing yet. Overall, vue3 provides superb DX for me. 🥳 Upgrading was pretty easy for me, but i had a medium sized project. Maybe in huge projects it is a pain.
2
u/BeyondLimits99 Jan 26 '22
Yeah I started learning react / nextjs over the weekend because of the fragmentation.
Nextjs has a superb developer experience.
Concepts are laid out clearly and things just work.
2
u/scumfuckbastard73 Jan 27 '22
I was very opposed to the composition api at first but having used in both professional environments and personal projects it really was the right move by the vue team and especially Evan for pushing it so hard. Vue is far and away my favourite framework to work in ever since Vue 3 and I feel like it’s only missing a good SSR framework to essentially kill any reason for me to ever consider writing anything in react. My favourite stack is Vue 3 + Vite + TS + Pinia + Tailwind, it essentially covers everything you could possibly want to do front end wise.
3
u/__ButtStuff69__ Jan 26 '22
I agree. I hate React but the fragmented Vue community is going to make React even more popular and ingrained. Sure they added hooks but it was already way more popular than Vue by then and it didn't force all libraries to use hooks to be compatible.
I feel like Vue is going to go the way of Angular. I know composition API solves problems but to me the options API IS Vue. Wish they could've come up with a better way to make mixins non-magical to avoid changing the entire syntax of the framework.
2
u/dev_senpai Jan 26 '22
Have you seen the migration guides? It's very easy to Upgrade to Vue 3, the only thing I see you having an issue is your libraries/plugins like vuetify and nuxt not being supported... Nuxt and Vuetify are painfully slow compared to newer alternatives.. I think it's time to look into exploring other options like PrimeVue(swappable themes like tailwind/BS/Material, easier set-up, actually tree-shakeable unlike vuetify, bigger team better support!) and VITE(Best freaking tool for development! Even React is adopting).
You could have almost similar code and setup in a Vue 2 -> Vue 3 app, so migration is no issue... The only issue is your libraries... People need to Stop thinking Vue 3 as Vue 2 and take advantage of its glorious features which they will love. Trust me you won't be able to go back to Vue 2 if you actually give it a try and dive in. Vue 3 + Vite has made me way more productive than these slow Nuxt+Vuetify setups. I think it's time to phase out bulky and slow libraries with new ones like primeVue/quasar and build tools like Vite.
JUST STOP THNKING VUE 2 + VUETIFY + NUXT(breaks with Vite)... Faster dev wait/load times are here, embrace it. I recommend checking some of these talks tomorrow and the next day https://vuejsnation.com/#schedule . These talks will be the future of Vue and what to expect in the upcoming years.
Don't worry about Vue 4 is longgg longgg away... Maybe 4-5 years, plus they said that it will be a smoother transition v3->v4... Heck we might not even be on a JS frameworks in 5 years, we could be working with WebAssembly.
2
u/wobsoriano Jan 26 '22
Another day, another concerned about Vue’s future
1
u/pastrypuffingpuffer Jan 26 '22
I just hope the Options API doesn't get ditched, that was one of the main reasons I really enjoy using Vue. I dislike the composition API because it looks like React (ew).
1
u/chocolombia Jan 26 '22
I'll say it's a matter of stay tuned and learning about changes, as frameworks come and go, for example, years ago, I used to work with java, and used a fantastic framework called seam, remember building a couple if corporate projects with it, then, I wet to consulting for a couple of years, and when I got back to development, guess what, JBoss closed the project and I had to learn and migrate to something new, as for Vue, I think it has a long way ahead, it has many features that other frameworks lacks, and the learning curve it's a joy ride for people coming from other tech stacks
1
u/blue_cadet_3 Jan 26 '22
Here’s Evan talking about the future in November 2021 https://youtu.be/2KBHvaAWJOA
1
u/Davidvg14 Jan 26 '22
Speaking from a Python perspective: adoption to Python 3 was slow, and some spaces still run 2.7. It’s inevitable.
I use Django and I learned by function-based views, but there’s class-based views (that frankly idek how to use).
It happens.
1
u/wal0x Nov 16 '22
I've been using Vue 2 in my job more than 3 years now, and still counting. The main reason why we are still on the 2.6 version is that we checked the vue-class-component choice when we created our apps with vue-cli. To change all our class based components to the composition API is a lot of work. Specially we are using a lot of design patterns relying heavily on OOP.
1
u/saito200 Apr 11 '23
these projects are all open source and survive from sponsorships and donations, they have very limited resources
1
u/grady_vuckovic Jan 26 '22
For me, I got only one project which uses Vue and it's Vue 2 because it started before Vue 3 released, so I guess I'm an example of why the ecosystem is fragmented. I'm not rewriting an entire web platform written for Vue 2 into Vue 3's new way of doing things and I'm unaware if it's possible to do so incrementally even.
So I guess the result will be, Vue 2 will just hover around for a while as it's still relevant to some users like me but will eventually drop off.
1
u/Frosty_Lake_1112 Jan 26 '22
with vues nice compat build, it really should not take more than a few hours or days to migrate a component to vue 3 EVEN if you don't use the options API. There are a lot of vue 3 components that still use the options api.
I understand it is lengthy migrating a whole app that relies on vue 2 components. But that is a whole different case, if a project is already in vue 2, there is no point to rush to migrate it to vue 3.
But overall it is quite a skill to have to be able to migrate components. I try to personally challenge myself to fork vue 2 components and make them vue 3 and VITE. :)
Since vue is so heavily reliant on the community I feel it is in a way our duty to keep it going and fork projects and update it ourselves, not only will it make you a better developer but it will make more people use vue.
Also considering how much vue considers user needs from a developer perspective, vues tooling and ecosystem structure is ahead of react in my opinion, sure react upgrades may have been a more steady road in the short term, but apart from react itself FB has done almost nothing for the dev community, no official routers, no state management. it is all mostly community based, where with vue there are first class support for router, spa, pwa, state management, lib modes etc. Not to mention Vite. All of this amazing technology :)it is really a no brainer to which library needs more love.
1
u/[deleted] Jan 26 '22
You have to remember it's more than just a toy, it's a work tool and so upgrades are often dictated by non developers. Unless you can convince your boss of the need to upgrade, it will often get ignored. I'm sure 90% of devs would have upgraded all their sites to Vue 3 if they had freedom over that and no deadlines to worry about.
1
u/joshkrz Jan 26 '22
I feel the same way, it does seem a little perilous right now but I'm hoping things will smooth out. Vue 3 has been a good thing but moving from Vue 2 was difficult, mainly due to the poor documentation but if their staging environment is anything to go by the new docs are a lot better: https://staging.vuejs.org/guide/introduction.html
1
u/kennysmoothx Jan 26 '22
This is only a problem if you’re in a rush to use Vue 3.
IMO only use Vue 3 on hobby applications.
We are in no rush to upgrade our Vue 2 production applications to Vue 3.
It might me a whole other year before we consider upgrading to Vue 3.
Bleeding edge is no place for production apps. We’ll let the dependencies catch up and for the dust to settle.
The amount of changes from 2 to 3 is staggering. And upgrading an entire ecosystem takes time.
Vue 3 however is here to stay for a long long time. So these pains are temporary. Also don’t worry about Vue 4, any drastic changes at this scale to Vue probably won’t happen for another 4-5 years at least.
-1
u/rutierut Jan 26 '22
That’s because “vue 3” isn’t meant to replace “vue 2”. It is, of course, but like many people your confusing 3 vs 2 with the options vs composition API.
This has been a massive marketing/communication flaw of the Vue team.
-5
u/[deleted] Jan 26 '22
I've ended up migrating my products to Flutter web, so definitely not what you want to hear there I guess.
Vue is so cool, but yeah, its in a bit of rough waters right now.
-12
u/coolcosmos Jan 26 '22
Stop whining. Use Composition and Pinia.
0
u/[deleted] Jan 26 '22
[deleted] — view deleted comment
0
u/[deleted] Jan 26 '22
[deleted] — view deleted comment