Skip to content
This repository has been archived by the owner on Jul 19, 2022. It is now read-only.

[State of JS 2019] Question Outline #198

Open
SachaG opened this issue Nov 11, 2019 · 12 comments
Open

[State of JS 2019] Question Outline #198

SachaG opened this issue Nov 11, 2019 · 12 comments

Comments

@SachaG
Copy link
Member

SachaG commented Nov 11, 2019

Here's a preliminary list of the questions for this year's State of JS survey. Feedback welcome!

Major Changes

  • We're dropping the "Most Liked/Disliked Aspects of X" questions for each library. Asking this for every library multiplies the total number of questions by 2 or 3 and makes the survey much longer.
  • We're dropping the "Back-End" section to keep the survey shorter. If there is a strong demand for questions about JS on the server, we might include them in a different survey altogether in the future.
  • We're adding a "Features/Patterns" section to ask more directly about how people use the language itself.

Demographics

  • Country
  • Salary
  • Years of Experience
  • Company Size
  • Gender
  • Job Title
  • CSS Proficiency
  • Front-end Proficiency
  • Back-end Proficiency

Features/Patterns (have used it/know what it is/never heard of it)

Syntax

  • Destructuring
  • Spread operator
  • Arrow Functions

Language

  • Proxy
  • Async/await
  • Promises
  • Decorators

Data Structures

  • Maps
  • Sets
  • Typed Arrays

Browser APIs

  • Service Workers
  • LocalStorage
  • i18n
  • Web Components
  • Web Audio API
  • WebGL
  • Web Animations API
  • WebRTC
  • Web Speech API
  • WebVR
  • Websocket
  • Fetch API

Other

  • PWA
  • WebAssembly

Patterns (5-point opinion scale)

  • Classes/Object-oriented programming
  • Functional programming
  • Reactive programming

Technologies (would use again/would not use again/etc.)

JavaScript Flavors

  • TypeScript
  • Reason
  • Elm
  • ClojureScript
  • PureScript [NEW]
  • ES6
  • Flow
  • Other Technologies
  • Happiness level

Front-end Frameworks

  • React
  • Vue
  • Angular
  • Preact
  • Ember
  • Svelte [NEW]
  • Polymer
  • Other Technologies
  • Happiness level

Data Layer

  • Redux
  • Apollo
  • GraphQL
  • MobX
  • Relay
  • Other Technologies
  • Happiness level

Back-end (get rid of this section?)

  • Express
  • Next.js
  • Koa
  • Meteor
  • Sails
  • FeathersJS
  • Nuxt.js
  • Gatsby.js
  • Other Libraries
  • Happiness level

Testing

  • Jest
  • Mocha
  • Storybook
  • Cypress [NEW]
  • Enzyme
  • Ava
  • Jasmine
  • Puppeteer
  • Other Technologies
  • Happiness level

Mobile & Desktop

  • Electron
  • React Native
  • Native Apps
  • Cordova
  • Ionic
  • NW.js [NEW]
  • Expo [NEW]
  • NativeScript
  • Other Technologies
  • Happiness level

Other Tools (check those that you use)

Utilities

  • Immer
  • Lodash
  • Underscore
  • Moment
  • Date Fns
  • Ramda
  • jQuery
  • RxJS

Build Tools

  • Webpack
  • Parcel
  • Gulp
  • RollUp
  • FuseBox

Other Languages

  • PHP
  • Ruby
  • Python
  • Go
  • Rust
  • Java
  • C/C++
  • Objective-C
  • Scala
  • Swift
  • C#
  • .NET
  • Haskell
  • OCaml
  • Dart

Text Editors

  • VS Code
  • Sublime Text
  • Atom
  • Vim
  • Emacs
  • Webstorm

Resources

  • Blogs & Magazines

    • CSS Tricks
    • Smashing Magazine
    • CoDrops
    • SitePoint
  • Sites & Courses

    • Stack Overflow
    • MDN
    • W3Schools
    • FreeCodeCamp
    • Codecademy
    • LevelUp Tutorials
    • Wes Bos Courses (GSSGrid.io, Flexbox.io, etc.)
    • Pluralsight
    • DesignCode
  • Podcasts

    • Shop Talk Show
    • The Changelog
    • Syntax
    • JS Party
    • JavaScript Jabber
    • Full Stack Radio
    • Front End Happy Hour
    • JAMstack Radio
    • The Web Platform Podcast
    • Modern Web
    • CodePen Radio

Opinions

  • JavaScript is moving in the right direction
  • Building JavaScript apps is overly complex right now
  • JavaScript is over-used online
  • I enjoy building JavaScript apps
  • I would like JavaScript to be my main programming language
  • The JavaScript ecosystem is changing too fast
@pixlforge
Copy link

pixlforge commented Nov 11, 2019

Would it make sense to add Nuxt and Next to the list of frameworks?

@SachaG
Copy link
Member Author

SachaG commented Nov 11, 2019

Would it make sense to add Nuxt and Next to the list of frameworks?

We originally had Next in the Back-End section, but we decided to drop it. But yes if we still had it we'd probably add Nuxt, too.

@BBlackwo
Copy link
Contributor

BBlackwo commented Nov 11, 2019

Interesting you decided to drop Jasmine. It's still quite popular https://www.npmtrends.com/jasmine-vs-jest-vs-ava

Great move to add Cypress!

@akiroussama
Copy link

Flutter in web technology?

@TheAlexLichter
Copy link

Maybe it'd be worth asking if one is using a meta framework (e.g. Nuxt.js for Vue, Next for React, Sapper for Svelte etc.)? I'd be eager to know how many devs use such a meta framework (or app framework) instead of relying on a component-level framework "only".

@TheJaredWilcurt
Copy link

Super happy to see NW.js added 🎉, but a little surprised to see NativeScript being removed. NativeScript-Vue has really taken off in the last year. It's become the go-to recommendation for the Vue community; and seems to be doing a lot more innovation around code sharing than anything else in that space.

The example of having the templates for web and mobile kept in the same .vue file and reusing the shared logic between the two UI's just seems like a really intuitive approach to building and maintaining both:

nativescript-vue

@SachaG
Copy link
Member Author

SachaG commented Nov 11, 2019

@akiroussama does Flutter have anything to do with JavaScript though?

@orta
Copy link

orta commented Nov 20, 2019

@SachaG a lot people of see Dart as a competitor to JS from the context of React Native vs Flutter - I think it's reasonably big FWIW but maybe not big enough for inclusion

I wondered about the "Build Tools" section. It could probably be split into "bundlers" and "build tools" (as there's only one thing that's not really a bundler in there)

Bundlers

  • Webpack
  • Parcel
  • Rollup
  • FuseBox

Build Tools

  • gulp
  • eslint
  • prettier
  • tslint
  • lerna
  • yarn workspaces

for example


Syntax: Could add optional chaining, import/export also

@dcorb
Copy link

dcorb commented Nov 26, 2019

would you consider lit-html the successor of Polymer? Although it's not a framework, people could be interested to track web components usage.

And I think it's probably a mistake to drop the "backend" section. Tracking the JS ecosystem without nodejs or SSR solutions feels very wrong to me. It's one of the most interesting parts of State of JS. I would drop "other languages" section if you want to keep it shorter

@S1ngS1ng
Copy link
Contributor

S1ngS1ng commented Nov 26, 2019

Hey Sasha, I got a few suggestions here:

  1. It might make sense to include Prototype Design Pattern under "Patterns".
  2. +1 for Optional Chaining and import/export. Both are a good fit under "Syntax".
  3. The order of options seems a little bit weird to me:
    image
    Personally, I consider that the "Heard of it > Not interested" should come before "Heard of it > Would like to learn". What's your opinion?
  4. It is good to see "Podcasts" under "Resources". For Syntax, it might be better to name it more specifically as Syntax.fm. Plus, here are some other podcasts that I'd recommend including:
    1. Toolsday
    2. Base.cs Podcast
    3. Command Line Heroes
    4. Developer Tea
  5. EDIT: Just noticed that it is under "Magazine". But it might be better to have a new sub-category named a "newsletter"? What's your opinion? The newsletter regarding dev topics has been popular. Personally, this is one of my primary go-to resources to explore something new. I'd recommend including those newsletters, just to name a few:
    1. JavaScript Weekly
    2. ES.next News
    3. Web Tools Weekly
    4. Node Weekly
    5. Frontend Focus
    6. React Status
    7. Angular Weekly
      =========
    8. CSS Weekly
    9. Web Design Weekly
    10. CSS Animation Weekly
  6. EDIT: Just noticed that Dev.to is included. Again, what's your opinion of adding a sub-category of "Community"? I'd propose adding another sub-category under "Sources", that is Community. Though sometimes, it might be considered as part of "Sites & Courses" as well. To name a few:
    1. Dev.to
    2. freeCodeCamp forums
    3. Reddit (🤦‍♂)

And a question, are we planning on the translation for this year? I could help with Chinese.
Another thing is, AFAIC, there are MANYYYY other resources/sites/... that are popular specifically within the Chinese developers' community. It might be beneficial that we include those while working on the translation. But that could be way too much overhead, which makes the statistics to be more complex.

@SachaG
Copy link
Member Author

SachaG commented Nov 26, 2019

@S1ngS1ng those are all great suggestions! I can't change the survey now that it's live but I'll take them into account for next year.

@SachaG
Copy link
Member Author

SachaG commented Nov 26, 2019

Oh and regarding translations, we didn't really have time to think about it this time but now that our infrastructure supports it since we're using our own platform, it's definitely something I want to do next time.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants