DEV Community

loading...

Discussion on: Vue or React?

Collapse
ghamadi profile image
Ghaleb Author • Edited

Yes! Thank you for addressing the main question! The more I read the responses the more I felt that the post triggered a Samsung vs iPhone kind-of debate. lol

The main reason for focusing on Vue and React in my case is inexperience. For instance, I had not heard of Svelte until I read the comments. It definitely is on my radar now, and I am grateful to all the tips and pointers I picked up reading this thread. The post picked up far more traffic than I expected and most of it was generally informative.

However, regarding your response, I think we can spot a criterion that seems to be a substantial driver behind which technology gets more market share and which gets driven out of the picture, and that is ease-of-use.

Now, I am almost definitely over simplifying things here, but ease-of-use is important, I think, because it translates into two things:

  1. Lower costs for established developers (or companies), and
  2. Lower barriers to entry for aspiring developers.

For example, I would argue that much of Python's appeal comes from its simple syntax and extensive and powerful libraries that take away much of the heavy-lifting from developers. I would also argue that the main reason Angular is being bumped out of the party, as you put it, is that it was often branded as the more complex framework that is mainly for big companies.

When I wanted to pick up a framework I looked up the top names and found React, Angular, and Vue. Then I dug deeper, and the first one to go out was Angular, because I kept coming across comments about its complexity. I began with Vue because I needed something I can pick up quickly to start building my portfolio. I already have the disadvantage of being late to the game, so the "simplicity" of Vue eventually made it my point-of-entry.

With this perspective, as I grab my popcorn, I predict the longer-living library will be the one that continues to have the lower learning curve while being robust. I think such library will more often be considered as "the perfect middle ground" and not "the messy compromise". But I agree, nothing is truly predictable in this race.

Collapse
ryansolid profile image
Ryan Carniato

I guess I could sort of bucket it all under ease of use. But maybe less friction is better. Up until now I'd never peg the easiest library for the developer to write their apps to necessarily win the day. At least easiest as in least initial learning curve. I do think it plays a more important part with the widening of target audience though.

I'm honestly excited/curious about this next stage(hence the popcorn statement) as even with my general ability to predict this stuff I do not know where this goes. Mostly that since React came out in 2013 (ignoring Angular for a moment) it's been a one party show. All other libraries just followed queue, copied features, communications, terminology, etc.. And it shows.

But where we are heading we are already seeing splitting of opinions, so the next sets of features will see different libraries implementing differently and I don't know what will come out on top. It isn't necessarily the easiest approaches or the most technically performant. I live in this stuff between my work (core team on eBay's Marko framework) and my personal project (Solid Framework). So I genuinely think we might see an interesting change in dynamics with the releases in the coming 12 months.

It's an interesting tension because I know I can no longer identify in an unbiased way with people making the choice for themselves sometimes for the first time. I have too much specific experience understanding all the minute tradeoffs, and honestly hardened too many biases over the years. Funny enough not from choosing one solution and sticking with it but from doing different things and building strong resentment towards certain aspects.

It is often no longer about what I find fun as much as what I dislike the least. So I gravitate towards simple but powerful, which often means more work and leveraging of my knowledge but complete control in what I get and complete confidence in what I teach others. For me that's something like React. But Svelte has aspects of that as well if you understand how it works which is a bit masked behind their compiler. Whereas easy, or configurable are not characteristics I value as much personally but constantly am conscious of when designing.