Plus Crockford teaches us how to pronounce JSON, JavaScript in space, and TypeScript 4.8. |

#​603 — August 26, 2022

Unsubscribe  |  Read on the Web

If you missed my note two weeks ago, we took last week off, so you didn't miss any issues :-) We're now back every week until Christmas (121 sleeps to go..)
__
Peter Cooper, your editor.

JavaScript Weekly

When Alternative JS Runtimes Grow Up: Deno Has Big Changes Ahead, and the Creator of Bun Forms Oven

Two distinct stories that we felt deserved to be together as they provide a little look at the development of alternative server-side JavaScript runtimes that aren't Node.js and are both going after overlapping markets.

Deno's big news is that they're working hard on npm compatibility and Deno will be able to use most npm modules soon (Deno 1.25 has been released with a preview). Meanwhile, Jarred Sumner, the creator of Bun, has answered our pun prayers and formed Oven, a company to support Bun's development, and already raised $7m for it. The heat is, most certainly, on.

→  deno.com/blog/changes
→  oven.sh

DENO AND OVEN

▶  On the Future Features of JS — Hemanth is a TC39 delegate and hosts the popular TC39er podcast. In this 25-minute talk, he flies through a variety of current language proposals, their progress, and why they matter.

Hemanth HM

Take a Tour of JavaScript & React Patterns — Join Lydia Hallie for the video course covering design patterns you can use to improve the code architecture of your web apps. Learn traditional JavaScript design patterns, React patterns, performance, and reading patterns.

Frontend Masters sponsor

TypeScript 4.8 Released — The typed superset of JavaScript continues to remain popular. 4.8 is more a minor evolution than a revolution, but makes improvements to inference, correctness and consistency, file watching, and serious speedups on rebuilds.

Daniel Rosenwasser (Microsoft)

Crawlee: A New Web Scraping / Automation Library for Node.js — It’s always neat to see a new project launched with some fanfare. Crawlee gets a 3 minute introductory screencast, a launch post, and a nice homepage. It builds on top of things like Puppeteer and Playwright but can handle proxies, retries, spidering, working around blocks, and the like.

Apify

IN BRIEF:

  • 🛰 JavaScript is in space! The James Webb Space Telescope runs JavaScript onboard, though not in quite the same way as we all run it.

  • How do you pronounce JSON? Douglas Crockford, who basically came up with it in the first place, ▶️ explains all here. But what about tabs vs spaces..?

  • If you have any apps deployed on Heroku's free tier, be aware of changes coming to Heroku in the next few months that may mean you need to migrate elsewhere. (Replit and Fly.io are options we're keen on.)

  • Node 18.8.0 is out and introduces easy support for creating and loading user-land snapshots.

  • PlanetScale, a serverless MySQL platform, has introduced an official serverless driver for JavaScript that's Fetch API compatible.

  • Storybook 7.0 is now in alpha with some nice design changes.

RELEASES:

Solid 1.5 – Declarative and flexible JS UI library.
Fiddle 0.30 – Electron playground tool.
Capacitor 4.1 – Cross-platform JS native app platform.
Note: There are more at the end of the issue.

📒 Articles & Tutorials

Understanding When and Why React Re-Renders — The processes around rendering are important to understand if you want to get the best performance possible from your React apps, so learn why and when React re-renders in the first place.

Josh W. Comeau

❤️ Loving console.log Is Easy, but Hate 😡 Losing Context to View Messy Output — Developer productivity tools Wallaby.js, Quokka.js, and Console Ninja (coming soon) show console.log values and errors right next to your code.

Wallaby.js sponsor

Popular Node.js Patterns and Tools to Reconsider? — Yoni is well known for his work in cataloging Node best practices (certainly worth looking at!) but he thinks we should reflect upon entrenched approaches over time. Here he presents 9 common approaches to reconsider.

Yoni Goldberg

(Re-)Introducing Gatsby as a 'Reactive Site Generator'? — Gatsby’s new focus is on enabling teams to deploy content rapidly with a new architecture that they say allows Gatsby Cloud to publish to its CDN in under a second. This post benchmarks Gatsby’s “Reactive Site Generation” (RSG) approach against most traditional approaches.

Kyle Mathews

Advanced TypeScript Patterns: API Contracts
Jon Mellman

My Experience of Speaking at VueConf US 2022
Austin Gil

Installing and Running Node.js bin Scripts
Dr. Axel Rauschmayer

🛠 Code & Tools

pico.js: Face Detection Library in 200 Lines of JS — The author of a C-based face detection library has turned his hand to JavaScript and here’s the end result. There’s a live demo that runs well and the linked post explains how it works in depth.

Nenad Markuš

GopherJS: A Go(lang) to JavaScript Transpiler — The latest beta brings it up to Go 1.18 (though without generics for now, alas) and ES6/ES2015 standards. There’s an online playground if you want to have a quick play.

GopherJS

Introducing the Most Powerful Free Plan in CI/CD — No limits on concurrent jobs, pipelines, CPU, or memory. Built-in tracking & monitoring for tests. 10,000 minutes/month.

Buildkite sponsor

inappbrowser.com: See What JS is Injected by In-App Browsers — The idea is simple: you share the URL https://inappbrowser.com/ within an app of choice, click through to it, and the resulting landing page will tell you if it detects any JavaScript or CSS it didn’t supply itself.

Felix Krause

Node v16.17.0 (LTS) Released — A useful LTS release with a couple of modern backported features – this time, 16.x users gain access to the util.parseArgs CLI argument parsing function, the experimental ESM loader hooks API, and the node:test module and runner.

Michaël Zasso

NodeGui: Build Cross Platform Desktop Apps with JS and CSS — Differs from Electron in using the Qt GUI framework which can make things more complicated but also more efficient in terms of memory use.

NodeGui

Free Activity Feeds & Chat APIs for Qualifying Teams

Stream sponsor

react-easy-crop 4.5: A Component to Crop Images and Videos
Valentin Hervieu

Seven Tools for Creating a New React App
Jonathan Saring (Bit)

OTHER QUICK RELEASES:

Focus Trap 7.0 – Trap the focus within a DOM node (e.g. a modal).
Electron Packager 16.0 – Customize and package Electron apps.
DOMPurify 2.4 – Fast, tolerant XSS sanitizer for HTML and SVG.
vue-advanced-chat 2.0 – Agnostic chat room component.
Soketi 1.4 – Fast, resilient WebSocket server on Node.
Mineflayer 4.4 – API to create Minecraft bots.
calendar-base 2.0 – Base methods for generating calendars.

💻 Jobs

Senior JavaScript/TypeScript Developer (Remote or Warsaw) 🇵🇱 — Join the CKEditor team to develop an Open Source project used by millions of users around the world 🚀and realize your true potential.
CKEditor

Find JavaScript Jobs with Hired — 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 Quick Bit of Fun

Head straight back to the 90s / early 00s and enjoy some retro Web cursor effects. Next up: custom scrollbars, 10px Tahoma, and scrolling frames everywhere.
o