---
title: "The State of JS 2020 survey results"
publication: "JavaScript Weekly"
issue: 521
published_at: "2021-01-15"
canonical_url: "https://javascriptweekly.com/issues/521"
---

Plus Snowpack 3.0, writing an FPGA driver, and your chances of getting a PR merged into Vue.js. |        

#521 — January 15, 2021 

[Unsubscribe](https://javascriptweekly.com/leave/*|UID|*)|[Read on the Web](https://javascriptweekly.com/issues/521)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/iwttkc0x71x8wbxabkps.jpg)](https://2020.stateofjs.com/en-US/)   

[The State of JS 2020 Survey Results](https://2020.stateofjs.com/en-US/) — 23,765 people from 137 countries took part in the recent _State of JS_ survey and while there are some [common criticisms](https://dev.to/sachagreif/state-of-js-2020-common-criticisms-23id) of the project, the results are nonetheless interesting and we’ll be digging into some in forthcoming issues. Standouts include: 

- Svelte took the [top frontend framework crown](https://2020.stateofjs.com/en-US/technologies/front-end-frameworks/) from React for developer satisfaction.
- [_Testing Library_](https://testing-library.com/) jumped straight to #1 for [testing libraries.](https://2020.stateofjs.com/en-US/technologies/testing/)
- [More developers than ever](https://2020.stateofjs.com/en-US/features/other-features/) are producing PWAs or using WebAssembly.
- 86% of respondents are [using _VS Code_](https://2020.stateofjs.com/en-US/other-tools/#text_editors) to work on their code. 

State of JS   

[Announcing TypeScript 4.2 Beta](https://devblogs.microsoft.com/typescript/announcing-typescript-4-2-beta/) — What’s new? Leading/middle rest elements in tuple types (e.g. `let bar: [boolean, ...string[], boolean]`), smarter type alias preservation, stricter checks for the `in` operator, and more. 

Daniel Rosenwasser (Microsoft)   [![\](https://copm.s3.amazonaws.com/e7ef550a.png)](https://frontendmasters.com/learn/javascript/?utm_source=newsletter&utm_medium=email&utm_campaign=javascriptweekly&utm_content=javascript) 

[⭐️ Professional JavaScript Learning Path](https://frontendmasters.com/learn/javascript/?utm_source=newsletter&utm_medium=email&utm_campaign=javascriptweekly&utm_content=javascript) — From JavaScript foundations, all the way to Hardcore Functional JavaScript, find out how far you can go with your JavaScript abilities in this comprehensive learning path. 

Frontend Masters sponsor   

[Snowpack v3.0: Reimagining Web Development with ESM](https://www.snowpack.dev/posts/2021-01-13-snowpack-3-0) — You can now import any npm package on demand (with streaming imports), and there’s a new native JavaScript API. Oh, and it’s the one year anniversary of Snowpack’s 1.0 release! 🎉 

Fred K. Schott      

We asked Snowpack's creator, [Fred K Schott](https://twitter.com/FredKSchott), for a few words on [Snowpack 3.0](https://www.snowpack.dev/posts/2021-01-13-snowpack-3-0): ![](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/lgvlusyoce36f5m6ygyj.jpg) 

“I couldn't be more excited about this launch! Streaming imports are a game changer that simplify dependency management by fetching packages as soon as you need them: pre-built, pre-bundled and ready to run.

We also shipped a first-class integration with `esbuild` to bundle Snowpack builds 100x faster than Webpack, Rollup or Parcel (seriously, look at [these benchmarks!](https://esbuild.github.io/)). If you haven't had a chance to check out Snowpack yet, v3.0 is a great chance to jump in.”     

[Node Package Maintainers, Get Ready For ES Modules](https://blog.sindresorhus.com/get-ready-for-esm-aa53530b3f77) — ES modules are rapidly becoming a day to day reality for Node.js package maintainers, so spare a thought for Sindre who has about 20 million packages (_slight exaggeration_) to his name. Sindre shares some basics on why it’s important and what his plans are. 

Sindre Sorhus  

📖 Articles, Opinion & Tutorials  

[Advanced Promise Patterns: Promise Memoization](https://www.jonmellman.com/posts/promise-memoization) — Memoizing async methods to simplify caching and avoid common race conditions. An interesting example of memoization 👍 

Jon Mellman   

▶[Building FPGA Hardware Using TypeScript: Driving an RGB LED Panel](https://www.youtube.com/watch?v=Otx96lJnLeo) — Most people aren’t likely to play with FPGAs rather than cheaper microcontrollers but this is a wonderful detailed JS-flavored look into that world. 

Low Level JavaScript   

[How to Implement An Exponential Backoff Retry Strategy](https://advancedweb.hu/how-to-implement-an-exponential-backoff-retry-strategy-in-javascript/) — Automatically retry an async operation in an efficient way 

Tamás Sallai   

[The Effortless Backend for JavaScript Applications with GraphQL](http://www2.fauna.com/jamstack?utm_source=JavascriptWeekly&utm_source=Newsletter&utm_campaign=CooperPress_Newsletters_2021) — Add state to your JavaScript apps effortlessly with Fauna - the secure and operations-free data API for Jamstack. 

Fauna sponsor   

[10 Best Practices to Containerize Node Webapps with Docker](https://snyk.io/blog/10-best-practices-to-containerize-nodejs-web-applications-with-docker/) — Production-grade guidelines for building optimized and secure Node-based Docker images whether for microservices, server-side rendering, or stand alone apps. 

Liran Tal and Yoni Goldberg   

[The `navigator.clipboard` API](https://davidwalsh.name/navigator-clipboard-api) — A look at async read and write methods for managing clipboard data. 

David Walsh   

▶[Working with WebSockets on AWS](https://www.youtube.com/watch?v=ZuoZpf3JnY8) — A 30 minute screencast focusing on using API Gateway as a WebSocket endpoint to talk with a serverless Lambda function. Both the client and the serverless function are written in JavaScript, of course. 

Ryan H Lewis   

▶[Building Your Own E-commerce System in 25 Days](https://e-commerce-in-25-days.netlify.app/) — 25 videos covering 25 days of using Next.js, Netlify and Stripe to build an e-commerce system. 

Jon Meyers   

[OpenTelemetry and Observability: Achieving Full System Visibility](https://go.lightstep.com/register-opentelemetry-and-observability-achieving-full-system-visibility-co21.html?utm_campaign=js&utm_source=cooper&utm_medium=Email) 

Lightstep sponsor   

[Deploying a Serverless Jamstack Site with RedwoodJS, Fauna, and Vercel](https://css-tricks.com/deploying-a-serverless-jamstack-site-with-redwoodjs-fauna-and-vercel/) — A neat combination of ideas and technologies here. [RedwoodJS](https://redwoodjs.com/) is a ‘full stack Jamstack’ framework (created by one of the co-founders of GitHub), [Vercel](https://vercel.com/) provides the deployment and hosting, and [Fauna](https://fauna.com/) is a serverless database/data API. 

Anthony Campolo   

▶[Publishing a Vue.js 3 Component on npm](https://www.youtube.com/watch?v=KwoO2afF5cg) 

Lachlan Miller     

🛠 Code & Tools   

supported by [![Okta\](https://res.cloudinary.com/cpress/image/upload/v1602154330/de7dtktheistsfpqdem4.png)](https://developer.okta.com/?utm_campaign=newsletter_cooperpress_all_multiple_inc_dev_sponsored-section_null&utm_source=cooperpress&utm_medium=cpc)    

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/bvlpp3fgykmtpcolwzef.jpg)](https://github.com/imolorhe/altair)   

[Altair: A Feature-Rich Cross Platform GraphQL GUI Client](https://github.com/imolorhe/altair) — A tool clearly written using Web technologies but available for macOS, Windows, Linux, etc. for testing and working with GraphQL and GraphQL APIs. 

Sir Muel   

[Merge Chance: Will Your Pull Request Get Merged?](https://merge-chance.info/) — A very bare bones, but interesting, tool for seeing what percentage of a project’s pull requests _from outsiders_ get merged in. For example, [83% do](https://merge-chance.info/target?repo=redis/redis) for Redis whereas [only 23% do](https://merge-chance.info/target?repo=vuejs/vue) for Vue.js. 

Piotr Zakrzewski   

[Cheerful, Collaborative Project Management](https://clubhouse.io/?utm_source=cooperJSWeekly&utm_medium=spon_nl) — Some PM tools are too simple. Others, unwieldy and unpleasant. Clubhouse is nothing but good adjectives. [Give us a try](https://clubhouse.io/?utm_source=cooperJSWeekly&utm_medium=spon_nl). 

Clubhouse.io sponsor   

[Compiled: Build Time Atomic CSS-in-JS](https://compiledcssinjs.com/) — Write your styles in JavaScript with the full power of CSS then have them compiled ahead of time. [GitHub repo.](https://github.com/atlassian-labs/compiled) 

Atlassian   

[svelte-dnd-action: An Action-Based Drag and Drop Container for Svelte](https://github.com/isaacHagoel/svelte-dnd-action) — Makes the bold claim that it _“supports almost every imaginable drag and drop use-case, any input device and is fully accessible.”_ 

Isaac Hagoel   

[Handtrack.js: Realtime Hand Detection in the Browser](https://github.com/victordibia/handtrack.js) — Of course, [there’s a demo.](https://victordibia.com/handtrack.js/#/) It seems to work pretty well. 

Victor Dibia   

[vno: A Vue / Deno Love Story?](https://itnext.io/vno-a-vue-deno-love-story-a9dd4d130ac7) — The first native build tool for compiling and bundling Vue single-file components in a Deno runtime. 

Andrew Rehrig   

[Announcing Scala.js 1.4.0](https://www.scala-js.org/news/2021/01/12/announcing-scalajs-1.4.0/) — Build robust front-end web applications in Scala with Scala.js 

Scala.js  

💻 Jobs  

[Senior JavaScript Engineer - Platform Engineering (Berlin, DE)](https://jobs.lever.co/researchgate/7c512f84-d925-4ba0-b548-1503ba8ec90d?lever-origin=applied&lever-source%5B%5D=Javascript%20Weekly) — Help us improve our web performance & frontend infrastructure with actionable feedback, scalable workflows & tools our devs love to use. 

ResearchGate   

[Senior Frontend Developer (m/f/d)](https://getsafe-jobs.personio.de/job/279949) — We’re looking for talented React / React Native devs to join our InsureTech-Team and help us shape the insurance world of tomorrow. Offering responsibility, ownership and growth possibilities. 

Getsafe Digital GmbH   

[Find Your Next Job Through Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-javascriptweekly%29&utm_content=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 

Hired         

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/peterc) 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or [stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
