---
title: "A deep dive into the history of JavaScript"
publication: "JavaScript Weekly"
issue: 479
published_at: "2020-03-13"
canonical_url: "https://javascriptweekly.com/issues/479"
---

And more JavaScript links, tutorials, and projects of the week.       

#479 — March 13, 2020 

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

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1584115137/fgsfwnyfjpafv5g2vvvl.jpg)](http://www.wirfs-brock.com/allen/posts/866)  

📙 [JavaScript: The First 20 Years](http://www.wirfs-brock.com/allen/posts/866) — 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](http://frankforce.com/?p=7427) — 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   [![\](https://copm.s3.amazonaws.com/dd79f83e.png)](https://buildkite.com/?pk_campaign=jsweekly-130320&pk_source=cp-jsweekly&pk_medium=newsletter) 

[Faster CI/CD for All Your Software Projects Using Buildkite](https://buildkite.com/?pk_campaign=jsweekly-130320&pk_source=cp-jsweekly&pk_medium=newsletter) — 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](https://redwoodjs.com/) — 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](https://github.com/feltcoop/why-svelte) — 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](https://nextjs.org/blog/next-9-3) — A minor point release of the popular [Next framework](https://nextjs.org/) can’t be a big deal, right? Wrong – the all new ‘Preview Mode’ (which is [a game changer](https://www.datocms.com/blog/how-the-new-next-js-9-3-preview-mode-works/)), 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](https://github.com/reduxjs/cra-template-redux-typescript/releases/tag/v1.0.0)
- [sql.js 1.2](https://github.com/sql-js/sql.js) — SQLite for the Web.   

💻 Jobs  

[UX/Frontend Engineer @ Siteline](https://jobs.lever.co/siteline/e97a73bc-7235-4613-a9ed-a17c2cffbaf0) — 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](https://careers.ideas.aha.io/ideas/new?preset%5Brole%5D=front-end-developer&preset%5Bteam%5D=engineering&preset%5Bdiscovered%5D=job-listing&utm_campaign=Front_End_Developer&utm_content=React_Rails_Engineer&utm_source=cooper_press&utm_medium=paid_ps) — 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](https://www.vettery.com/tech?utm_source=newsletter&utm_medium=cooper-javascriptweekly&utm_term=tech&utm_content=grouped&utm_campaign=ad-77584) — 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](https://ckeditor.com/blog/Aborting-a-signal-how-to-cancel-an-asynchronous-task-in-JavaScript/) — 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](https://github.com/getify/CAF) to make the process easier. 

Tomasz Jakut   

[Demystifying Async Programming in JavaScript](https://yunchi.dev/posts/demystifying-async/) — A lot to learn from this exploration for beginner and intermediate developers. 

Yunchi Luo   

[Building with Web Components](https://blog.heroku.com/building-with-web-components) — The history and current state of Web Components in 2020. 

Heroku sponsor   

[Designing the Perfect Typescript Schema Validation Library](https://vriad.com/blog/zod/) — Which, spoiler alert, has resulted in the creation of [Zod](https://github.com/vriad/zod), a schema validation library with static type inference. 

Colin McDonnell   

[What is a Higher-Order Function?](https://typeofnan.dev/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](https://www.sitepoint.com/build-native-desktop-gif-searcher-app-using-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](https://blog.scottlogic.com/2020/02/17/minesweeper-optimisation.html) 

Steven Waterman   

[Why I Don't Use Classes](https://spin.atomicobject.com/2020/03/12/why-i-dont-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](https://www.logianalytics.com/?utm_source=jw&utm_medium=newsletter&utm_campaign=pbp) 

Logi Analytics sponsor   

[Understanding Vue's Deep CSS Selector](https://www.telerik.com/blogs/understanding-vue-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](https://auth0.com/blog/angular-9s-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 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/v1584118640/eoa5gjpyjgryvfmknzja.png)](https://hacks.mozilla.org/2020/03/future-proofing-firefoxs-javascript-debugger-implementation/)  

[Future-Proofing Firefox’s JavaScript Debugger Implementation](https://hacks.mozilla.org/2020/03/future-proofing-firefoxs-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](https://github.com/domchristie/turndown) — 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](https://github.com/vsls-contrib/code-tour) — 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](https://www.site24x7.com/real-user-monitoring.html?utm_source=JS%20Weekly&utm_medium=email&utm_campaign=mar-newsletter&ad_src=jsweekly) 

Site24x7 sponsor   

[sort-isostring: A Tiny Utility to Sort ISO 8601 Date Strings](https://github.com/lukeed/sort-isostring) 

Luke Edwards   

[Uid: A Tiny Utility to Generate Random IDs of Fixed Length](https://github.com/lukeed/uid) — 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](https://github.com/sindresorhus/on-change) 

Sindre Sorhus         

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
