Skip to content
Surveys
/
State of JavaScript 2024
English
This survey closed on December 10, 2024.
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
Compiled Code Balance
AI Code Generation
Usage Type
Use Case
Industry Sector
Application Patterns
JavaScript Pain Points
New Proposals
Missing Features
Native Types
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
What proportion of the JavaScript code you write for the browser goes through a build step?
2024
Any bundled, minified, or otherwise transformed code, as opposed to code directly executed by the browser.
0% Compiled
|
|
|
50%
|
|
|
100% Compiled
Leave a Comment (optional)
Skip
What proportion of the code you produce is AI-generated?
2024
Including code copy-pasted from ChatGPT or other chatbots.
0% AI
|
|
|
50%
|
|
|
100% AI
Leave a Comment (optional)
Skip
In what context do you primarily use JavaScript?
Professionally
As a student
As a hobby
Other…
Leave a Comment (optional)
Skip
What do you use JavaScript for?
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?
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?
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
Which of these active JavaScript proposals are you most excited about?
2024
Based on current State 2.7 & Stage 3
TC39 ECMAScript proposals
.
Pick up to 3 items.
Temporal
Provides standard objects and functions for working with dates and times.
Decorators
Functions called on classes or other JavaScript syntax forms during definition.
Explicit Resource Management
Allocation of a resource and the ability to explicitly release critical resources.
Source Phase Imports
Customize the loading, linking, and execution of modules beyond the standard host execution model.
RegExp.escape
Escaping a string for use inside a Regular Expression.
ShadowRealm API
A distinct global environment, with its own global object containing its own intrinsics and built-ins.
Deferring Module Evaluation
Modules that would not be executed when loaded, but would be fully loaded to the point of being execution-ready.
Joint Iteration
Synchronise the advancement of multiple iterators.
Iterator Sequencing
Create iterators by sequencing existing iterators.
JSON.parse source text access
Grant reviver functions access to the input source text.
Decorator Metadata
Extend the Decorators proposal by adding the ability for decorators to associate metadata with the value being decorated.
Float16Array
Add float16 (aka half-precision or binary16) TypedArrays to JavaScript.
Other…
Leave a Comment (optional)
Skip
What do you feel is currently missing from JavaScript?
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
A new
|>
operator for passing the result of one function to another.
Observable
A type that can be used to model push-based data sources such as DOM events, timer intervals, and sockets.
Signals
Used in reactive programming to remove the need to manage updating in applications.
Async Context
APIs to propagate a value through asynchronous code, such as a promise continuation or async callbacks.
Extractors
A mechanism for executing user-defined logic during destructuring.
Iterator Chunking
A way to transform an iterator into subsequences of configurable size.
map.getOrInsert()
Checking if a key is present, and then inserting or updating depending upon the result, in a single call.
JavaScript Structs
Enable high-performance applications by unlocking shared memory multithreading.
Record
&
Tuple
Two deeply immutable data structures.
Other…
Leave a Comment (optional)
Skip
How would you like to see native types implemented in JavaScript?
2024
As similar to TypeScript as possible
Using comments, similar to JSDoc
I would not like to see them implemented
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