Choosing a framework: React vs Angular vs Vue vs Ember
Angular, Ember, React, Vue

Choosing a framework: React vs Angular vs Vue vs Ember

We recently came to the conclusion that we must change our client side code from jquery to some modern framework like React, Angular, Vue, Ember, etc. The main reason is to make our code more organized and maintainable, but also to benefit from the big ecosystem and many cool tools in the ecosystems of those new frameworks, and of the bigger jobs market share of those frameworks.

We performed a research to decide which framework to choose and those are the conclusions:

  • Vue is the fastest growing framework in popularity and ecosystem. The statistics say that developers show more interest in Vue than in Angular and that in the near future\year Vue might overcome Angular (already has more github stars than angular). So we would choose Vue over Angular.
  • Other frameworks like Ember are not popular enough and don’t have big enough of an ecosystem for us to consider them in comparison to Vue and React.
  • Advantages of Vue over React
    • Supports simpler syntax and more types of syntax and more abilities
    • Simpler
    • Has more useful\convenient explicit naming and structure like “methods” property and “components” property
  • Disadvantages of Vue compared to React
    • Smaller ecosystem
    • Allows a lot of syntax’s and abilities which can create a mass and less order as a result in a big project
    • Hasn’t yet proven itself to stand through time like react
    • Works anti-intuitively by default when for example not specifying a key to elements then change values instead of the whole elements which might be efficient but it is unexpected
    • Less opinionated and enforces less standards than react which is worse for maintaining a big project
    • The native solutions are not mature and strong like react native yet

The bottom line is that after reading everything about React and reading all Vue documentation, my conclusion is that in Vue they thrown every possible cool thing they saw in other libraries together to glue them into Vue.  This is cool for creating something small and innovative but this is not maintainable enough and organized enough yet to be the basis of the whole client side system of a company.  It hasn’t proven itself over the years yet to grow and keep growing like React. So its just not mature enough and organized enough and have solid standards yet for us to base our client side on it unlike React. So from technical perspective the better choice right now and probably for the near 2 years is to base our code on React to have a supported maintainable strong innovative base.

Some of the links used in the research:

Leave your thought here