#479 — March 13, 2020
JavaScript Weekly
📙 JavaScript: The First 20 Years — Allen Wirfs-Brock and Brendan Eich (the creator of JavaScript) have written a paper for the forthcoming History of Programming Languages Conference about how our favorite ‘sidekick scripting language for Java’ was built and has grown. It’s long, goes deep into the tech and syntax development side of things, and is sure to be my main weekend reading.
Allen Wirfs-Brock
How I Made a '3D' Game in Only 2KB of JavaScript — This is one of those detailed, fun, ‘learn a few tricks’ type walkthroughs. I’ve always been fascinated how people pull off various effects in games and how they get their code down to such small sizes. A fun read.
Frank Force
Faster CI/CD for All Your Software Projects Using Buildkite — See how Shopify scaled from 300 to 1500 engineers while keeping their build times under 5 minutes.
Buildkite sponsor
RedwoodJS: Bringing Full-Stack to the JAMstack — A new, opinionated framework that combines React, GraphQL, Prisma2, and lots more out of the box. Notably it comes from Tom Preston-Werner, one of the original founders of GitHub.
RedwoodJS
Why Svelte Is Our Choice for a Large Web Project in 2020 — A thorough analysis of the pros and cons of picking Svelte over, say, React or Vue.js right now.
Ryan Atkinson
Next.js 9.3 Released: The React Powered Site Building Framework — A minor point release of the popular Next framework can’t be a big deal, right? Wrong – the all new ‘Preview Mode’ (which is a game changer), smaller runtime, and new static site generation options really take things up a notch while still not introducing any breaking changes.
Next Team
⚡️ Quick Releases
- Redux + TypeScript Template for Create React App 1.0
- sql.js 1.2 — SQLite for the Web.
💻 Jobs
UX/Frontend Engineer @ Siteline — Join the founding engineering team at Siteline and help us revolutionize the payments process for construction.
Siteline
React + Rails Experts — Join Our Bootsrapped Remote Team — Aha! is primarily a Rails application, but we are using React to make excellent interactive experiences on top of Rails.
Aha!
Find a Dev Job Through Vettery — Vettery is completely free for job seekers. Make a profile, name your salary, and connect with hiring managers from top employers.
Vettery
📘 Articles & Tutorials
Aborting a Signal: How to Cancel an Asynchronous Task — Cancelling asynchronous tasks has always been tricky and while there’s now an official way to do so, it’s still not entirely straightforward. You might like Kyle Simpson’s CAF (Cancellable Async Flows) library to make the process easier.
Tomasz Jakut
Demystifying Async Programming in JavaScript — A lot to learn from this exploration for beginner and intermediate developers.
Yunchi Luo
Building with Web Components — The history and current state of Web Components in 2020.
Heroku sponsor
Designing the Perfect Typescript Schema Validation Library — Which, spoiler alert, has resulted in the creation of Zod, a schema validation library with static type inference.
Colin McDonnell
What is a Higher-Order Function? — You might have heard the term "higher-order function" thrown around in JS circles. This post uses some examples to attempt to define this concept.
Nick Scialli
How to Build a Native Desktop GIF Search App with NodeGui — Atul Ramachandran demonstrates how to install NodeGui (a Qt-driven desktop app library) and use it to build a "meme searcher."
Atul Ramachandran
Slow Code 'Hates Him'.. Optimizing a Web App from 1 to 60 FPS
Steven Waterman
Why I Don't Use Classes — "Instead of classes, I prefer modules that expose groups of functions that accept state and other dependencies." This is a popular attitude in the JS space, to be fair.
Andy Peterson
Don’t Build Your Own Analytics: Try Logi, The Only Developer-Grade Embedded Analytics Platform
Logi Analytics sponsor
Understanding Vue's Deep CSS Selector — Demonstrates how to use the ‘deep’ selector in Vue, a powerful tool for resolving certain CSS issues.
Marina Mosti
Angular 9's Best Hidden Feature: Strict Template Checking — A lesser-known feature of Angular 9’s Ivy compiler: Find and report more errors than ever using something called ‘strict template checking.’
John Papa
🔧 Code & Tools
Future-Proofing Firefox’s JavaScript Debugger Implementation — A run through some of the major improvements made to JavaScript debugging in the Firefox DevTools, including garbage collection, compartments, forced returns and exceptions.
Jim Blandy and Harald Kirschner (Mozilla)
Turndown 6.0: An HTML to Markdown Conversion Library — Used to be called to-markdown. Available in both Node and browser packageable forms.
Dom Christie
Code Tour: VS Code Extension to Record and Playback Guided Code Walkthroughs — This looks really promising for teams that want to help new hires get familiar with certain features of a codebase, essentially replacing actual training sessions.
VS Live Share Contrib
Gain Real-Time Insights in Your Front-End Performance with Site24x7
Site24x7 sponsor
Uid: A Tiny Utility to Generate Random IDs of Fixed Length — Generate randomized output strings of fixed length using lowercase alphanumeric characters, for Node and the browser.
Luke Edwards
on-change: Watch an Object or Array for Changes
Sindre Sorhus