After using React full-time now for 2 years and transitioning from class components to function components and hooks, I have to say...

Ember is highly underrated and I miss it.
The transition from class components to hooks is confusing. It’s arguably better for beginners; however, there are a ton of foot guns with them. There are some really great libraries like react-query for example that’ll handle data fetching and state, but initially it was a ffa
Conventions over configuration is a thing. Enforcing conventions is incredibly difficult with React
The upgrade path for Ember also has meaning. Folks know what to expect and the upgrade path is transparent. In React, it’s definitely not.
Getting people to understand when to useMemo/useCallback is also really difficult. A lot of people will just do this by default for everything without understanding the *negative* perf implications of doing so
Are there some nice things in React? Sure. If I had to start a new project and was forced to use React, I’d definitely take ideas from Ember on conventions. Also reach immediately for react-query, tailwind, and sass.
But if I could start a new project using whatever I want, I’d definitely go right back to Ember
Oh yeah, another thing: ROUTING! Ember’s routing is so nice. In React, it’s easy to _not_ do routing properly. So many times I see the example being prop based, because you can, instead of having routes to make everyone’s life easier (dev and end user)
What I mean here is a lot of times in react apps I see /order as a route (great!), but /order/create or even /order/<id> isn’t a route - it’s just a prop at the parent swapping what component to display based on button click
Anyway, all you Ember folk, keep up all of the good work. I’m cheering from the sidelines and maybe one day I’ll be back writing glorious Ember apps.
One final thought before bed. React is really great for extremely small teams (4 or less devs imo), but it can spiral out of control without guardrails in place as your team grows. For larger teams, the conventions based approach of Ember is 👌and keeps everyone better on track
You can follow @_ynotdraw.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: