Devographics / surveys

YAML config files for the Devographics surveys
45 stars 8 forks source link

State of React 2024 Preview #250

Closed SachaG closed 3 weeks ago

SachaG commented 1 month ago

Also see previous suggestions here: https://github.com/Devographics/surveys/issues/243

slorber commented 1 month ago

State of React 2024 Feedback

Main

Hooks

New APIs

Component Libraries

State Management

Data Loading

Backend & Infra

Other Tools

Usage

Most excited about:

Resources

About You

N/A

slorber commented 1 month ago

There are React design decisions that @rickhanlonii could probably advise us on, such as:

leerob commented 1 month ago

Server Actions -> renamed as Server Functions

Server Actions still exist. The "parent" category is called Server Functions, implying there will be other function-like things that, well, run on the server. So I'd recommend keeping Server Actions.

leerob commented 1 month ago
SachaG commented 1 month ago

Awesome feedback! Also as a more general point, beyond simple features/libraries/etc. questions, I'm also happy to consider more targeted questions that might help address specific issues that the Next.js, React, etc. teams might be having. e.g. it could be something like "what are the obstacles preventing you from adopting RSCs in your codebase", etc. if that happens to be a topic you guys would like to learn more about.

eric-burel commented 1 month ago

First thanks @slorber for this extended feedback which is awesome :eyes:

Regarding Application patterns, we could simplify and stick to most common patterns, and maybe provide a free text for "your favourite pattern this year" (eventhough that's more work for us). The current list mixes framework specific wording like islands, patterns that are slightly redundant etc.

I would propose:

Basically I removed stuff that are automatically brought by the framework, eg streaming SSR or island, and focused on patterns that are actual decision from the user

slorber commented 1 month ago

NP 👍

The question I find the most confusing is not the Application Pattern but the React usage one. I wouldn't know how to classify an e-commerce/media/marketing/blog/cms-based content site.

CleanShot 2024-10-11 at 14 28 58@2x

Maybe it could be useful to explain what you mean for each option. For example: Desktop apps (Electron or corporate web backoffice app?), Web apps (websites included?).

Maybe adding a "Web sites" option, and a description for each option would be useful?


For application patterns, I don't really know what's best.

What I don't like is to present boolean choices to things that are implementation details, and that users may not be aware of using. The boolean choice (yes/no) might bias the results. All the options would be fine if there was a way to answer "I don't know"

SPA/view transitions: pure client-side routing

I find this option a bit confusing because of cross-docuent view transitions, it also works for MPA despite not using pure client-side routing

SachaG commented 1 month ago

I’m not sure if Suspense, useTransition and useDeferredValue should appear in that New section. Maybe worth consulting the React core team on their opinion.

Forms: I would find it interesting to have some kind of “Form Practice” question and add uncontrolled + controlled choices including positive/negative feedback on each

I would also add the React Context API in this category because it’s often used alongside other small libs (Zustand, useState) to provide “global” state management.

I'm kind of leaning towards removing useState rather than adding Context to be honest. I think it's kind of an unfair comparison to include a core API among libraries, although I added it to have a baseline of sorts.

Would replace Fetch/Axios by useEffect. You can use those libs as an implementation detail of fetching with useEffect, but also with React-Query, SWR etc.

I think it'd be confusing to have useEffect here. Maybe instead some generic term like "generic data loading library" or "network library" like you suggested?

Add a comment in Remix such as “including React Router using with the new Vite plugin”, since Remix is kind of merging back into React Router the line is blurry.

This reminds me of the Angular.js vs Angular situation… I'll think about it but I think it'd be better for everybody to keep the "Remix" brand alive to avoid confusing people.

slorber commented 1 month ago

Great 👍

I think it'd be confusing to have useEffect here. Maybe instead some generic term like "generic data loading library" or "network library" like you suggested?

To me useEffect for data fetching is directly comparable to react-query, swr and others that are just abstractions build on top of it. You can use all 3 with fetch or Axios. Separating data loading from network lib might be better indeed.

SachaG commented 1 month ago

We're live!

https://survey.devographics.com/en-US/survey/state-of-react/2024

Sorry, I know this was all a bit short notice, but I'm trying to get all the surveys out before the end of the year.

By the way, if you're able to share the survey (which would be very helpful!) please include a ?source=foo tag at the end, such as:

https://survey.devographics.com/en-US/survey/state-of-react/2024?source=this_week_in_react

This will help us track where respondents are coming from, and see if it influences their answers in any way.

devongovett commented 1 month ago

Under component libraries, I noticed that React Aria is the only one that has a description, not sure why that is. It is also using a bit of an outdated description, since React Aria is not only hooks anymore, it's also components. Think we can update that to avoid confusion (i.e. people might think this is only referring to the hooks and not the components)?

New description, from readme:

A library of unstyled React components and hooks that helps you build accessible, high quality UI components for your application or design system.

SachaG commented 1 month ago

@devongovett yeah I need to remove library descriptions from the survey itself I think, they were meant for the survey results originally.

SachaG commented 3 weeks ago

Update: the survey is now live! (and has been for ~10 days, actually)

It'd be a huge help if you can share it with your audience, especially @leerob !

leerob commented 3 weeks ago

CleanShot 2024-11-01 at 16 07 40@2x

FYI the OG image seems broken.

slorber commented 2 weeks ago

yes, looks like the meta is wrong @SachaG : https://assets.devographics.com/surveys/react2024-og.png

should be https://assets.devographics.com/surveys/react2024.png ?

eric-burel commented 2 weeks ago

Thanks @slorber I was exactly on it this morning ^^ so the "-og" variation is missing in our images repository. It's not so easy to detect automatically, as I would need to send a request to see if the URL exists. And it won't fallback automatically to another image, because we do have a non empty URL in the placeholder.

SachaG commented 2 weeks ago

Fixed :)