Skip to content
Surveys
/
State of JavaScript 2023
English
This survey closed on December 12, 2023.
View Survey Results »
11 sections (% completed)
▶
Features
Front-end Frameworks
Meta-Frameworks
Testing
Mobile & Desktop
Build Tools
Monorepo Tools
Other Tools
Usage
Resources
About You
9/11
Usage
JavaScript/TypeScript Balance
Usage Type
Use Case
Industry Sector
Application Patterns
JavaScript Pain Points
Missing Features
Web Technologies Happiness
JavaScript Happiness
How do you divide your time between writing JavaScript and TypeScript code?
0% TS
0%
|
12.5%
|
25%
|
37.5%
50/50
50%
|
62.5%
|
75%
|
87.5%
100% TS
100%
Leave a Comment (optional)
Skip
In what context do you primarily use JavaScript?
general.check_all
Professionally
As a student
As a hobby
Other…
Leave a Comment (optional)
Skip
What do you use JavaScript for?
general.check_all
Frontend Development
Backend Development
Data Analysis
Machine Learning
Desktop Apps
Mobile Apps
Embedded Apps
Game Development
Data Visualization
Graphics & Animation
Other…
Leave a Comment (optional)
Skip
Which industry sector(s) are you using JavaScript in?
general.check_all
Consulting & Services
Cyber Security
Ecommerce & Retail
Education
Entertainment
Finance
Government
Healthcare
Marketing/Sales/Analytics Tools
News, Media, & Blogging
Programming & Technical Tools
Social Media
Other…
Leave a Comment (optional)
Skip
Which of the following architecture and rendering patterns have you used
in the last year
?
Single Page Application (SPA)
Tell us more:
Positive experience
Negative experience
Apps that run entirely in the browser
Multi-Page Application (MPA)
Tell us more:
Positive experience
Negative experience
Apps that run entirely on the server, with minimal client-side dynamic behavior
Static Site Generation (SSG)
Tell us more:
Positive experience
Negative experience
Static content pre-rendered at build time, with or without a client-side dynamic element
Server-Side Rendering (SSR)
Tell us more:
Positive experience
Negative experience
Dynamically rendering HTML content on the server on request, before rehydrating it on the client
Partial Hydration
Tell us more:
Positive experience
Negative experience
Only hydrating some of your components on the client (e.g. React Server Components)
Progressive Hydration
Tell us more:
Positive experience
Negative experience
Controlling the order of component hydration on the client
Islands Architecture
Tell us more:
Positive experience
Negative experience
Isolated islands of dynamic behavior with multiple entry points in an otherwise static site (Astro, Eleventy)
Progressive Enhancement
Tell us more:
Positive experience
Negative experience
Making sure an app is functional even without JavaScript
Incremental Static Generation
Tell us more:
Positive experience
Negative experience
Being able to dynamically augment or modify a static site even after the initial build (Next.js ISR & on-demand revalidation, Gatsby DSG)
Streaming SSR
Tell us more:
Positive experience
Negative experience
Breaking down server-rendered content in smaller streamed chunks
Resumability
Tell us more:
Positive experience
Negative experience
Serializing framework state on the server so the client can resume execution with no duplicated code execution.
Edge Rendering
Tell us more:
Positive experience
Negative experience
Altering rendered HTML at the edge before sending it on to the client
Partial Prerendering
Tell us more:
Positive experience
Negative experience
Render a route with a static loading shell, while keeping some parts dynamic
Other…
Leave a Comment (optional)
Skip
What aspects of JavaScript do you struggle with the most?
3
Pick up to 3 items.
State Management
Managing global data state in complex applications.
Code Architecture
Organizing and maintaining your codebase.
Finding Packages
Finding and evaluating JavaScript packages.
Debugging
Identifying and solving issues with your code.
Managing Dependencies
Managing dependencies, package versions and bundle sizes.
Async Code
Handling asynchronous functions.
Writing Modules
Writing JavaScript modules and publishing them as packages.
Date Management
Handling and manipulating dates and times.
Performance
Writing performant and efficient JavaScript code
Build Tools
Managing tooling to bundle your code
Typing
Managing and maintaining types
Other…
Leave a Comment (optional)
Skip
What do you feel is currently missing from JavaScript?
3
Pick up to 3 items.
Static Typing
Native runtime typing; or TypeScript-style type-as-comments
Standard Library
A standard library of common utilities
Pattern Matching
A new
match
keyword for pattern-matching objects.
pipe_operator
Decorators
Decorators used to metaprogram and add functionality to a value.
Immutable Data Structures
New deeply immutable data structures such as
Record
and
Tuple
.
Better Date Management
A new
Temporal
object for working with dates and times.
Observable
A new
Observable
type used to model push-based data sources.
Other…
Leave a Comment (optional)
Skip
How happy are you with the general state of web technologies?
Very Unhappy
Unhappy
Neutral
Happy
Very Happy
Leave a Comment (optional)
Skip
How happy are you with the general state of JavaScript?
Very Unhappy
Unhappy
Neutral
Happy
Very Happy
Leave a Comment (optional)
Skip
Next section
Resources
»
Previous section
«
Other Tools
State of JavaScript 2023