Devographics / surveys

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

State of JS 2022 Preliminary Discussions #47

Closed SachaG closed 1 year ago

SachaG commented 1 year ago

How can we improve the 2022 edition of the survey?

See also previous discussion here: https://github.com/Devographics/Monorepo/issues/61

Things to Consider

2021 Edition for Reference

General Resources

SachaG commented 1 year ago

Some new items to consider, in no particular order:

New questions to consider:

zackarychapple commented 1 year ago

It would be really awesome to see some questions around Module Federation, in particular how much folks are using it and with what frameworks / stacks they are using it. @ScriptedAlchemy may have som ideas on good questions on this.

Also now that Nx has taken over Lerna (link) it would be interesting to see how those questions around monorepo are restructured.

SachaG commented 1 year ago

@zackarychapple it might be a bit too niche? At least I personally hadn't heard about it before now.

RATIU5-zz commented 1 year ago

Roadmap.sh has some pretty good learning resources/structure for JavaScript. I’m looking most forward to seeing how all these new frameworks are growing/declining/looking forward to.

Routers

I want to see how developers have stances on routing. Which are better/most used/best dx.

Data loading

It would be great to see a section on types of hydrating such as with islands, resumability, partial-hydration

Let notes, I personally don’t care if it’s a longer survey, I just love seeing all the new trends and direction JS is going.

rglover commented 1 year ago

Howdy @SachaG. Would like to throw Joystick into the ring for new frameworks (Joystick is a full-stack, all-in-one UI/Node.js framework).

RomainLanz commented 1 year ago

Hey there! 👋🏻

I believe adding AdonisJS is not a bad idea. We have been forgotten for years.

thetutlage commented 1 year ago

I would love to see a dedicated section for backend frameworks and not mixing that with Nuxt, or Next or Svelte Kit.

And as @RomainLanz said, AdonisJS has been in the top list of "Other backend frameworks" for a couple of years, and yet missing in the selection option, because we are compared with Next, or Nuxt, even though the use cases these frameworks serve are different

kettanaito commented 1 year ago

Q: How do you mock requests in testing/development? (Multi-answer question)

Options:

I've been developing MSW (https://github.com/mswjs/msw) for almost five years now. It's one of the most commonly used and widely adopted API mocking solutions in JavaScript. It'd mean a lot to me to be able to see the analytics of usage on your survey. Consider including it.

arendjr commented 1 year ago

I realize this may be almost a personal crusade of mine, but the pipeline operator proposal uses the 2020 State of JS survey as motivation for why adding the pipeline operator to the language is desired. However, back then the pipeline proposal seemed like it still had a chance of landing in the form of the F# proposal.

Nowadays, the pipeline operator looks like it may ascent using the Hack proposal instead. Unfortunately, many of the people who originally wanted a pipeline operator feel that it is better to not have a pipeline operator than the current Hack proposal. As such, we strongly feel the current proposal has lost sight of what we wanted and why we wanted it, yet uses an outdated State of JS survey as justification for why it is desired.

I know this might turn it into a rather niche question, but the most objective way we have of getting a true measure of how many people are still on board with the current proposal would be to present this question in the new JS survey. The precise phrasing of the question will still be difficult, as I notice when discussing the operator that people are often not aware the current proposal is the Hack proposal, which diverges significantly from how the operator behaves in other languages. But I hope the following phrasing would be objective enough without leading people to the answer:

Do you support the current expression-based pipeline operator proposal?

Edit: I think my suggestion below is actually better: https://github.com/Devographics/surveys/issues/47#issuecomment-1289326849

arendjr commented 1 year ago

For some more general purpose questions, I would be very interested in the following questions:

In which environments do you use JavaScript:

Do you use WebAssembly with JavaScript, and if so, which language?

larsthorup commented 1 year ago

Testing tool option:

gabssnake commented 1 year ago

I want to know if people are using SonarQube and SonarLint, or their awareness:

More broadly, maybe ask about code quality tools and security scanning tools.

webbertakken commented 1 year ago

Perhaps a little related to @arendjr's question

Do you use WebAssembly with JavaScript, and if so, which language?

I am also very interested to hear what languages people interoperate with in JavaScript. Use cases could vary more widely than just WebAssembly though. Use cases could include:

Therefore I'd rephrase @arendjr's question to something slightly more generic:

"Interoperability - Do you ever invoke other languages from JavaScript? If yes, which ones (check all boxes that apply)"

nandeshwarshubh commented 1 year ago

It would be great to know how many people are using microfrontends and what underlying framework/plugin they are using for the same. Some of them being -

  1. Webpack 5 and Module Federation - https://webpack.js.org/concepts/module-federation/
  2. Single SPA - https://single-spa.js.org/
  3. Qiankun - https://qiankun.umijs.org/
  4. Luigi - https://luigi-project.io/
  5. Frintjs - https://frint.js.org/
  6. PuzzleJs - https://github.com/puzzle-js/puzzle-js
  7. Podium - https://podium-lib.io/
  8. Bit - https://bit.dev/
csaltos commented 1 year ago

How about adding Elm as a framework to consider in the new survey

SnowSuno commented 1 year ago

Would like to add in trpc if possible, which is rapidly gaining attention in github star count.

SachaG commented 1 year ago

Do you support the current expression-based pipeline operator proposal?

  • Yes
  • No
  • I don’t know

I feel like this whole issue might be a little too hard to explain in the context of the survey and I'm not sure if people would be able to make an informed choice unless they're already very familiar with the matter?

Hey there! 👋🏻

I believe adding AdonisJS is not a bad idea. We have been forgotten for years.

I'll definitely consider Adonis, I know it always comes high in the freeform submissions.

anodynos commented 1 year ago

Dear @SachaG and everybody: I dare say I think there's a dichotomy that StateOfJS has wrong: Frontend VS Backend Frameworks, especially when we're looking at the latter.

Let me explain:

It's important to know, these 2 "backend" services are offering a completely different functionality on your tech stack and quite often you need both of them at some level, to create a production App. There's no choice really. Using something like nextjs api-routes is like using Visual Basic 1.0 to build a modern App.

If we do both, the "Backend Frameworks" category kinda vanishes 🤣

There's my 2c. Let's have this conversation and see where it leads :-)

McSneaky commented 1 year ago

Runtimes would be interesting, especially server ones. In browsers it's all kinda united, don't think there's point of listing browser runtimes 🤔

Server:

IoT:

Edge:

Jolg42 commented 1 year ago

What do you think about adding a "database clients" section? It seems some people add these tools in "other tools", but the data is then less interesting than a dedicated section.

It could include the following popular packages for example:

(They are all in https://github.com/Devographics/Monorepo/blob/main/api/src/data/bestofjs.yml already)

Disclaimer: I work at Prisma, though I write this personally, and I think that this would be an interesting section for Node.js/server-side users in particular.

daniseguraf commented 1 year ago

Hi there, It would be great to talk about used and satisfaction with components libraries like:

There are many more out there, what would you add to the list?

SachaG commented 1 year ago

@daniseguraf actually those are already covered in the State of CSS survey.

mischah commented 1 year ago

Topic: MPAs (vs SPAs?)

Usage of new-ish SSR Patterns (Island Architecture, Partial Hydration, HTTP Streaming, etc.) See: https://www.patterns.dev/posts/rendering-introduction/

And Usage of related libraries/frameworks: Qwik, Astro, Elder, Marko, etc.

sirisian commented 1 year ago

In the "Features missing from Javascript" it would be more meaningful to separate it into "Static Typing: Types as comments" and "Static Typing: Runtime/native types" (or something similar/concise). I've noticed the two groups not being on the same page at all. The former want type annotations for documentation that are stripped out before compiling and the latter want types as a language feature - with other associated type features and runtime type features.

zackarychapple commented 1 year ago

@zackarychapple it might be a bit too niche? At least I personally hadn't heard about it before now.

Possibly I do know from what I've seen, the React, Next, and Angular communities are all frequently talking about it and it is something getting a lot of growth right now.

jessealama commented 1 year ago

Perhaps a quick pitch for Decimal? There's a lot of interest out there in having arbitrary-precision, or at least high precision, decimal arithmetic. It's a language feature in Stage 2.

arendjr commented 1 year ago

I feel like this whole issue might be a little too hard to explain in the context of the survey and I'm not sure if people would be able to make an informed choice unless they're already very familiar with the matter?

I think you’re right. A better approach might be to not put it in a separate question, but to simply split the answers for the Most Desired Features question: Which features do you feel JavaScript could use the most?

That way it’s at least clear people are voting for a specific proposal, and people are less likely to vote for it under the assumption it would be similar to the pipeline operator in other languages.

SachaG commented 1 year ago

@anodynos I think this is a valid point, but then where would you put something like Redwood? https://redwoodjs.com/ Or Remix? https://remix.run/

SachaG commented 1 year ago

Thanks for your feedback everybody! Here's a preview of the survey outline:

https://github.com/Devographics/surveys/issues/62

It's still a work in progress, so the things I've added/removed are not final by any means.

SachaG commented 1 year ago

I'll close this thread so we can discuss the survey preview directly in the other thread.

anodynos commented 1 year ago

@SachaG thanks for your reply.

I'd say things like redwoodjs and remix cant always be described with one word. They are kind of meta, mini or maxi frameworks or stacks or mashups, often with some extra sauce. Remember all these acronyms we had like in 2010's with LAMP or MEAN etc. Often an evolution of those.

They are aiming to soften a particular angle, for example a "full stack" out of the box (like sailsjs) or generator/scafolding/cover setups for easy getting up and running, or make development easier & more effective in some aspect (eg UI) etc.

They are mixing popular technologies and making essentially, new meta-frameworks. Or in the case of React (that is a more of a library, rather than an opinionated framework like Angular) they are making a framework out of it!

Maybe we need a category like Meta Frameworks? Or are we going to be sued? LOL

RATIU5-zz commented 1 year ago

In terms of "Meta Frameworks", I did not see QwikCity (The best DX I've used for FS) and SolidStart on the list of rendering frameworks. I understand they may not be on the list due to them not currently having a stable release version yet.

SachaG commented 1 year ago

@anodynos I agree the proper category would be "meta-framework" for something like Redwood, but then we would have a category with a single item… at least we'd know who will be number one! ;)

@RATIU5 yes they both feel a bit too new to be included this year. But who knows, we'll see.

anodynos commented 1 year ago

@SachaG I'm sure many Meta frameworks will surface if we have it as a category.

But anyway I'm happy we've split Backend Services from Backend Renderers, cause they solve very different problems.