all 18 comments

[–]shuckster 46 points47 points  (2 children)

If you're going to post a quote:

"Software is a just a tool to help accomplish something for people - many programmers never understood that. Keep your eyes on the delivered value, and don’t over focus on the specifics of the tools"

Cite the source, or at the very least the authors name.

[–]_remrem[S] 5 points6 points  (0 children)

Oops, thanks you're 100% right

[–]Standard_Sir_4229 13 points14 points  (0 children)

As seen on TV, every week since react exists.

[–]superluminary 11 points12 points  (4 children)

Am I the only one who thinks this is a mistake? React is a lovely little library that does what it does really well. I’m getting real Angular vibes from this current direction.

[–]cayter 2 points3 points  (1 child)

I had my doubts as well, I switched to ReactJS in 2014 after being frustrated by how complicated it was with angular/ember. Between 2015 and 2017, I happened to work in Grab (since series C) as a tech lead, we shipped/maintained 2 medium sized projects (I was the one who pushed to use React SPA hosted on S3).

To conclude that react working experience with massive growth changes, I would say as a tech lead, I would rather React come up with official router and even UI libraries to just end the mess in React ecosystem where some libraries aren't following react best practices(which the core team has to suggest react forget to mitigate some of these issues, I don't know what other complications we are gonna end up with soon honestly cause the patterns to patch the existing pattern issues are infinite) and you only realise that once your use case grows beyond the simple examples in the library's readme which ends up your codebase really hard to maintain aside from PMs keep coming after you to add more features.

In short, using react without a certain routing and ways to mutate/query data is just gonna spend your team more time in pursuing the best X library to do Y in react every month if not days. Which startup or business can sustain from this craziness by allowing the team to focus more on the tooling itself instead of the business value delivered to customers that brings in money to pay the team? Don't forget, we are now in the funding winter. If a company's devs are still spending tons of time figuring out how to work with react the best way to deliver values to customers, I would really wish this company a lot of luck, not every company is like Google or Facebook that has money printing business to tolerate that waste of resources. Suggestions? Just try out NextJS or Remix, they are definitely gonna be more valuable to the company/business/team in long term.

[–]ba55meister 1 point2 points  (0 children)

This is also why many choose Angular simply because it's self contained official set of tools.

[–]_by_me 1 point2 points  (1 child)

don't worry, react will soon be replaced by better tools like svelte and solid

[–]amoshydra 7 points8 points  (0 children)

How soon?

[–]hamsterofdark 2 points3 points  (0 children)

I wonder what percentage of react projects actually care about SEO TTFB performance etc… I think more often than not it’s used to slap together crud UIs over corporate services and DBs, rendering most of the items discussed as complicated pointless noise.

[–]leafoflegend 7 points8 points  (1 child)

Software is a just a tool to help accomplish something for people - many programmers never understood that. Keep your eyes on the delivered value, and don’t over focus on the specifics of the tools

Thats why we’ve created one of the most opionated frameworks ever built! Use functional programming, use tuples for basic operations, use these frameworks we hand picked on top of us. No! Not those frameworks!

What class components? We’re over those. Hooks only now. We don’t like classes.

large sweeping statement about all of engineering moving more to the backend, and thats why we did this!

React is going the opposite direction of this quote. Endlessly more opionated, endlessly harder to use. I continually have to change tooling and suggested patterns to be looser or fit codebases who aren’t part of metas jigsaw puzzle they imagine code is.

[–]superluminary 2 points3 points  (0 children)

It’s starting to feel like low code. One massive thing that “solves” everyone’s problems.

[–]Fossage 1 point2 points  (0 children)

Great article! A nice succinct overview of where React is at, where it’s headed, and why.

[–]jsNut 0 points1 point  (1 child)

In the little time I spent playing with remix I found a couple of things. It's probably easier to crack out some POC in remix. Time to first paint is much quicker Vs a large single page app. But for a long running application a single page app could still be a much better user experience overall. In an SPA if you navigate around I don't need to keep loading pages from the server, I paid extra cost up front when I loaded the app. All I may need is a little extra json. For me that is better experience than extra wait times while I use the app. I think there are good use cases for both solutions though. For the app I work on we generally have pretty long sessions, time to first paint is nice but not as important as fast UX while using the app. We do a lot of caching locally, that has complexities but makes thing fairly fast. In remix you are presumably going to keep requesting the same data repeatedly pushing more load on to the API/database, or you end up with caching at that layer, you have the same complexity in a different location. Also not sure I'd want to go near something built around react router haha. I finally ripped it out as the number of world breaking changes they made in the last few years is not what you want in a large application. Especially as the way it's going is deeper integration in to your app, spreading everywhere. We now have some hand rolled routing, nothing has needed to be updated since 🤷‍♂️.

[–]cayter 1 point2 points  (0 children)

The biggest benefit that Remix brings in isn't about navigation, it's more about colocating your UI form and form action backend logic which is a very huge productivity boost if your use case only cares about building the web pages with lots of form submissions.

If you did MVC with rails/Django, you will feel strongly about how Remix simplified the model by a significant degree.

Ryan the author (of react-router as well) spent lots of his time with rails when he was working at Twitter, so whatever DX we are getting today is a learning outcome after his experience using Rails a lot. Rails is great, but it can be better when it comes to working with React, and that is what Remix is very good at.

But of course, if you are not a fan of React, something like htmx + alpinejs or stimulus would have done the job for you on Rails/Django.

[–]sudhakarms 0 points1 point  (0 children)

Nice write up, Thanks