I am comparing several frameworks today and am wondering if anyone has any input on this. I have used Angular a little, React a lot more, and only basically know how Ember works.
If you have used any of these three, what is your opinion and which do you like the best?
I have been liking react because of the speed and small api. I have been reading about something called glimmer with Ember that is supposed to make it just as fast as react. Have you used glimmer before in your apps?
You might be interested to know that since this forum is powered by Discourse, which means youāre using an Ember app right now
Most of the big frameworks today will ultimately help you achieve the same thing but in different ways. One is not objectively better than the other. And much like learning a programming language, as long as you properly grok one framework itāll be easier to learn others later if and when you realise your first pick wasnāt quite what you needed.
If youāre having trouble deciding on which framework to learn first, one way to do it could be to browse through the ābuilt with Xā sites and try figure out which framework seems to be used most frequently by the type of company or app that you would most like to work with.
React JS is a view layer api. That said with JSX and Babel it gets reallt neat. I skipped data vizualization and decided to do backend second. I am on my next to last project and decided to do it in React because I have to learn it anyway.
Lessons learned: react router or similar will make your life easier. Everything is a componet. Like every little thing. No, itās a componet too. Program everything by it self then add everything together. Oh and micro services are your friends. And the results are fast and really, really neat.
I am still wanting to learn angular2. They supposedly improved render performance. After that, I think rust may be next language to learnā¦ Maybe c++ or haskellā¦ But with electron becoming a thing, I am not sure how long the compiled languages will be a thing outside of gaming.
I prefer using React right now. I love how much easier and more intuitive it feels than Angular (I am referring to Angular 1 here). I havenāt user Angular 2 much yet but I am not sure about how itās going to work in the long run out being that itās completely different from Angular 1.
I have recently been playing with Ember as well and itās pretty easy to get going quickly but I donāt like that everything is pretty much already configured for me.
I personally like being able to scaffold my own apps and install just the modules I need. I like that React is much lighter weight but I would probably use Ember if I needed something built quickly without needing to scale it.
Another bit of advice for React: use Flux, Redux, RxJS, or some sort of state management that isnāt React itself. Forget that setState even exists on components, and try to make as many pure functional components as you can. Itās an extra step that may feel cumbersome and unnecessary at first, but managing state in a web app will drive you completely insane if you donāt tackle it early.
I had a lot of problems with state and passing it around as props until I started using Redux. Now itās so much easier but I still leave as many components ādumbā as possible.
In general, I prefer React for its convenience and reusable components. However, Ember is also a good option, especially if one needs to create an SPA quickly. Canāt say much about Angular though. You might find the following info useful. Leave it here just in case https://yojji.io/blog/ember-vs-react
Lately, I have been using Angular 9-10 and the best way to describe the experience is very much similar to writing ASP.Net apps in Visual Studio: There are several extensions in VSCode that make writing Angular apps a streamlined experience. Not only that, the Angular CLI basically scaffolds most of your code files with a lot of ease. I havenāt encountered anything like that with the React apps Iāve built. I often had to build my own scaffolding tools and had to use snippets from vscode extensions. Which is okay, but why not just scaffold the code files and make the proper injections for wiring up your files?
Iāve grown to like RxJS over using promises as I feel they are more in line with how Javascript handles events.
Being someone whoās worked with React in previous jobs as well as personal projects of mine, Iām more inclined to use Angular 2 since it has everything I need to immediately start building business logic of the app and Iām able to dive into the infrastructure if need be.
I donāt know if this right to say but Angular 2+ uses convention over configuration and I like that. React has itās high points but I found myself spending more time nailing down a pattern than I was actually building an app.