DEV Community

Discussion on: Front End Javascript, Angular, React, etc, what and where to start with?

Collapse
 
endorama profile image
Edoardo Tenani

Hello Omar, it happened that I answered the same question a couple of days ago.

In my work life I spent 3/4 years working with jQuery, a couple years working on Angular, and a couple of years going Vanilla. I learnt EmberJS, VueJS and ReactJS ( but still no luck in working with them ).

Instead of looking at the reason why you should pick one of your proposed framework/library, I'd like to focus on why not you should choose one or the other.

I'm assuming that you are not focusing on job search ( so you're learning for the sake of learning and gathering experience ). If you are searching job, my advice is just go with the one you find more offer in your area.

If, instead, you are curious, here are my thoughts!

I'm assuming you have a basic to intermediate knowledge of JavaScript as a language ( ECMAScript 5 ).

AngularJS

Awesome framework, lots of features, but:

  • steep learning curve
  • documentation is complex
  • most documentation and code is in TypeScript, which means you have to at least understand transpilers, polyfills and have a build system. Everything is lady out by Angular already, but the initial complexity is high
  • nothing like React Native, at least not as straightforward

ReactJS

This is not a framework. A really beautiful and easy engine library, but:

  • it's ECMAScript 2016, which means you have to understand transpilers, polyfills and have a build system. Everything is lady out by React already, but the initial complexity is high
  • it's a library, which means you are not exposed to concept like routing, dependency injection, and others. The advantage of a framework over a library is that is a cohesive block of functionality. A framework is more complex, but generally made some choice for you: how to handle routing, dependencies, dom manipulation, ... In React you have to connect together more libraries to have the same set of features: react-router for routing, redux for state managements as examples. As things in JS ecosystem move really quickly, could be a pain learning on multiple separate libraries ( for example react-router is at it's 4 version, with 3 major breaking changes in functionality )

EmberJS

As a rubyist I found this framework totally awesome. But:

  • not much documentation/tutorials around
  • nothing like React Native

VueJS

Vue is like a Angular1 with a cleaner structure. Is a modular framework, which means you can "plug" functionalities when you need them ( as opposed a monolithic framework like AngularJS, where everything is there, with some minor exceptions ).

But:

  • is missing something like React Native; there is something called Weex but is still in early stage

The major advantage I see in Vue is that you can start in plain old ECMAScript 5, then "improve" to components, then add transpiler, then add ECMAScript 2016, then add routing, then add (chose another one).

Conclusion

Obviously you should try to learn them all! :D

The more things you learn, the more you are exposed to different concepts, structure, way of doing things.

As pretty much everybody else noted, if you do not have a strong grasp in JavaScript, get it. Every JavaScript framework is, essentially, JavaScript :) A solid knowledge of it will help you down the path.

Happy learning!!