---
title: "What impact could modern JS have on your users?"
publication: "JavaScript Weekly"
issue: 522
published_at: "2021-01-22"
canonical_url: "https://javascriptweekly.com/issues/522"
---

Plus a look at some rising stars, a JS engine for IoT, and variable naming advice. |        

#522 — January 22, 2021 

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

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/gegtb5t4g2cxvkc20g25.jpg)](https://risingstars.js.org/2020/en)   

[The JavaScript 'Rising Stars' of 2020](https://risingstars.js.org/2020/en) — Fingers crossed this is our final ‘look back’ at 2020, but the ‘Best of JS Rising Stars’ roundup comes out at the start of each year and shows off the fastest growing JavaScript tools and projects over the past year based on GitHub stars (which, yes, is _by no means a definitive metric_). Stand out projects include [Deno](https://deno.land/), [Playwright](https://github.com/microsoft/playwright), [esbuild](https://github.com/evanw/esbuild), and [Rome](https://rome.tools/), all of which we expect to see great things of in 2021. 

Michael Rambeau and Benjamin Blackwood   

[EStimator.dev: The Modern JavaScript Savings Calculator](https://estimator.dev/) — Enter a URL and this tool will tell you how much faster the site could be if the code was switched over (or compiled) to modern JavaScript. Read about it [here](https://web.dev/publish-modern-javascript/). 

Google Chrome Labs   [![\](https://copm.s3.amazonaws.com/ce33b14c.png)](https://handsontable.com/spreadsheet-viewer/) 

[Spreadsheet Viewer: Render XLSX Files In the Browser](https://handsontable.com/spreadsheet-viewer/) — Spreadsheet Viewer is a client-side component that allows users to preview XLSX file without the need of opening it in an external app. It is mobile-friendly, and supports all major frameworks such as React, Angular, and Vue. Check out the [live demo](https://handsontable.com/spreadsheet-viewer/). 

Handsontable sponsor   

[JerryScript: A Ultra-Lightweight JS Engine for the Internet of Things](https://github.com/jerryscript-project/jerryscript) — If you’ve got a constrained environment (e.g. a microcontroller, a watch, or the like) with only kilobytes of RAM to hand, this is the sort of thing you might want to try. It’s ES 5.1 compliant and, as of this week, supports [realms](https://github.com/tc39/proposal-realms), BigInt, class fields, `flatMap`, [and more](https://github.com/jerryscript-project/jerryscript/releases/tag/v2.4.0). 

JerryScript   

[How I Build JavaScript Apps in 2021](https://timdaub.github.io/2021/01/16/web-principles/) — A freelance developer shares his development approach from _avoiding_ build processes and transpiling, to testing and re-using his own work. 

Tim Daubenschütz     

Quick Bits 

- The Node.js team have [opened up their 2021 user survey](https://nodejs.medium.com/have-20-minutes-take-the-node-js-2021-user-survey-b4a9ee7eb878) and want you to take it. Don't forget to name drop us in question 59 😄
- Dr. Axel Rauschmayer is working on a ES2021 edition of his _JavaScript for Impatient Programmers_ book and you can [stay up to date on it via this list](https://buttondown.email/rauschma).
- GitHub has made it [easier to rename existing branches in repos](https://github.blog/changelog/2021-01-19-support-for-renaming-an-existing-branch/) – such as if you want to change `master` to `main`.
- A look at Google's progress on [migrating Puppeteer to TypeScript.](https://developers.google.com/web/updates/2021/01/puppeteer-typescript)
- The ▶️ [latest episode](https://tc39er.us/posts/episode-9-ujjwal-sharma/) of the TC39er podcast features Ujjwal Sharma, a compiler hacker and Node.js and V8 contributor.  

📖 Articles, Opinion & Tutorials  

[Some Language-Agnostic Guidelines on Naming Variables](https://github.com/kettanaito/naming-cheatsheet) — JavaScript is used although the basic principles can be applied to most languages. 

Artem Zakharchenko   

[13 JavaScript One-Liners That’ll Make You Look Like a Pro](https://medium.com/dailyjs/13-javascript-one-liners-thatll-make-you-look-like-a-pro-29a27b6f51cb?sk=111861f76f001cbb69f74ba2ca4eed91) — I think the title oversells it a little, but nonetheless, you might pick up a tip or two from these well presented examples. 

Twan Mulder   

[Running Rust in WebAssembly in a Pool of Concurrent Web Workers in JavaScript](https://alesgenova.github.io/concurrent-wasm-workers/) — _“I would like to share a little experiment I did for no other reason than to show I could.”_ Fantastic. This sort of thing is only going to become more popular, too. This will be WebAssembly’s decade. 

Alessandro Genova   

[Breakpoints and `console.log` Is the Past, Time Travel Is the Future](https://wallabyjs.com/?utm_source=cooperpress&utm_campaign=javascriptweekly&utm_content=javascript) — 15x faster JavaScript debugging than with breakpoints and console.log. 

Wallaby.js sponsor   

[Capturing Hacker News Mentions with Node and MongoDB](https://developer.mongodb.com/how-to/capturing-hacker-news-mentions-nodejs-mongodb) — If you don’t want to _read_ the ‘[orange site](https://news.ycombinator.com/)’ (as it’s often called) but you’d like to know if something gets mentioned there, here’s one option. 

Nic Raboy   

[Async Loops and Why They Fail](https://medium.com/dailyjs/async-loops-and-why-they-fail-part-1-6909a7d134f2) — Mixing loops with async calls in JavaScript can produce unexpected results. First in a four part series. 

Federico Kereki   

▶[10 JavaScript Clean Code Examples](https://www.youtube.com/watch?v=-d-jrxy6YbE) — Thoughts on ten examples of approaches worth considering if you’re trying to keep your code clean. It’s based on [this article](https://dev.to/redbossrabbit/10-clean-code-examples-javascript-37kj) by Ibeh Ubachukwu. 

Adrian Twarog   

[Creating Comic Book Speech Bubbles with SVG and JavaScript](https://humaan.com/blog/creating-comic-book-speech-bubbles-with-svg-and-javascript/?ref=sidebar) — Can comic-style speech bubbles be rendered in both an accessible and visually authentic manner? Yes, with a little work. 

Paul Spencer   

[Drawing 2D Metaballs with WebGL2](https://tympanus.net/codrops/2021/01/19/drawing-2d-metaballs-with-webgl2/) — An in-depth tutorial on how to code 2D visuals using WebGL2 (the newest version of WebGL and [supported by most browsers](https://caniuse.com/webgl2) save for Safari. (Hands if you misread this as 'meatballs' at first.. 🤚) 

Georgi Nikolov   

[Learn to Do File Uploads from the Client-Side Without Managing Storage](https://imagekit.io/blog/client-side-file-upload/?utm_source=Cooperpress&utm_medium=email&utm_campaign=Javascriptweekly_Newsletter&utm_term=BriefLink_Clientsideupload) 

ImageKit.io sponsor   

▶[Tips For Your Next JavaScript Interview](https://browntreelabs.com/how-to-ace-your-next-javascript-interview/) — A handful of useful suggestions in an eight-minute video. 

Chris Power   

[Using Dexie.js to Write Slick IndexedDB Code](https://dev.to/andyhaskell/using-dexie-js-to-write-slick-indexeddb-code-304o) 
Andy Haskell     

🛠 Code & Tools     

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/acexoqk1btyni9qu6pgl.jpg)](http://sortablejs.github.io/Sortable/)  

[Sortable 1.13.0: Create and Reorder Lists with Drag-and-Drop](http://sortablejs.github.io/Sortable/) — Supporting all modern browsers and touch devices, this library handles list-to-list dragging with auto scrolling, CSS animations, multi-drag support, and more. Lots of demos on the homepage. [GitHub repo](https://github.com/SortableJS/Sortable). 

SortableJS   

[Forgo: A Tiny UI Runtime for Modern Web Apps](https://forgojs.org/) — This is a small library that lets you build apps using JSX, similar to React. But unlike React, the syntax carries over from DOM APIs and JS so it’s easy to learn. 

forgojs   

[Boa v0.11: An Experimental JS Lexer, Parser and Compiler](https://boa-dev.github.io/2021/01/14/boa-release-11.html) — Written in Rust and led by a TC39 member, Boa aims for full spec compliance. Why would you use this? Maybe you’re interested in the current trend of writing JavaScript tooling in Rust or Go and would like an embeddable JavaScript implementation there.. 

Jason Williams   

[Scout APM - Leading Edge Performance Monitoring Starting at $39/Month](https://ter.li/du1zzq) — Streamline troubleshooting with real-time alerts & tracing logic that ties issues to source code. Try free for 14 days. 

Scout APM sponsor   

[jsPDF 2.3: Client-Side PDF Generation for Everyone](https://github.com/MrRio/jsPDF) — There’s a [live, interactive demo here](http://raw.githack.com/MrRio/jsPDF/master/). 

James Hall   

[Focus Rings: A Centralized System for Displaying and Stylizing Focus Indicators](https://github.com/discord/focus-rings) — From the Discord team, a React-based solution to render clean and consistent focus ring indicators for keyboard navigation. 

Discord   

[JZZ 1.2.0: A MIDI Library for Node and the Browser](https://github.com/jazz-soft/JZZ) — Brings the Web MIDI API to Node so you can send, receive and play MIDI messages from both Node and the browser on Linux, macOS and Windows. 

Jazz Soft   

[@vueuse/sound: A Vue Composable for Playing Sound Effects](https://github.com/vueuse/sound) — A Vue version of the [useSound](https://github.com/joshwcomeau/use-sound) React hook. 

Yaël Guilloux   

[eslint-plugin-vue 7.5.0: Official ESLint Plugin for Vue.js](https://github.com/vuejs/eslint-plugin-vue) 
Vue.js Team  

💻 Jobs  

[Software Engineer, Full-Stack (Fully Remote/US)](https://jobs.lever.co/IsometricTechnologies/ced96d5d-6249-433e-9a18-eab0820ad388?lever-origin=applied&lever-source%5B%5D=Javascript%20Weekly) — Supply chain accounts for ~10% of Global GDP. Join our small team to change how organizations work across the global supply chain. 

Isometric Technologies   

[Find a 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  

✅ A Neat Looking Extension  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/eqzrapp1qokj8mhyonsc.jpg)](https://github.com/zenorocha/codecopy)  

[CodeCopy: A Browser Extension That Adds 'Copy to Clipboard' Buttons on Every Code Block](https://github.com/zenorocha/codecopy) — Works with GitHub (including gists), MDN, Stack Overflow (and other Stack Exchange sites), Medium, CSS Tricks, and more. 

Zeno Rocha         

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 ![](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/n6jwzyznhqgquhot4mns.jpg)
