DEV Community

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

Collapse
 
kayis profile image
K • Edited

If you are a developer that already has a software and "just wants to get stuff done" and add a front-end to it, probably every framework you mentioned is okay.

But here a bit more detail:

If you like C# or something like this, you're probably better off with Angular 2, which is written in TypeScript, that shares some ideas with C#. It makes heavy use of observables, if that is your thing.

Cycle.js is, in my opinion, the better obsevable based framework, more lightweight etc.

If you don't like or know observables this could be an overkill, but if you got a push API (WebSockets, etc.) this could really help.

If you not into this, React is nice, small API surface, gets you going quick, also
has a big eco system. It's more imperative, push down props to your components and they push up events. If you like to learn it so you know a framework (jobs, other projects, etc.) I think this is the way to go, since its more than a web framework, there are also things like React-Native or React-VR that allow you to re-use your React skills later, but if you just want this one project done, this probably doesn't matter.

If you think all the big corps are wanna steal your bacon, go with Ember or Vue, since they are community based. Ember is a way more mature than Vue, but also way more old school.

If you know jQuery and don't want to build a too big app, Vue probably could be right for your. Not because Vue isn't suited for big apps, but it recommends different concepts for them. Data-binding for small to medium apps and components for medium to large apps.

People described Vue to me as a mix os of Angular and React concepts, the bad or good parts depending on who you talk to. The last time I used Ember they just added components to their, already long, list of concepts.

If you into tiny things and want to do many things yourself, you could look into Preact (a React clone) or HyperApp.