#469 — January 3, 2020

Read on the Web

JavaScript Weekly

The holiday season is rapidly coming to a close and we're looking forward to not only a new year but the entirety of the Roaring Twenties. Rest assured, the JavaScript world is not going to look the same when 2030 turns up so watch this space! 😄

We'll be back as usual next week, but this week we're taking a look back at 2019 and the most popular things you clicked on. If you didn't read every issue in 2019 (we wouldn't expect you to!) you'll hopefully find a few things worth revisiting here.

Thanks for supporting us — we look forward to keeping you up-to-date in the years to come.

— Peter Cooper and the Cooperpress team

📈 Our most popular links of 2019:

1. The TypeScript Tax: A Cost vs Benefit Analysis — As much as we love JavaScript, this was really a strong year for TypeScript, with it seeming to become the de facto way to bring strong typing to JavaScript. Back in January, Eric Elliott asked "is it worth it?" and presented some critical, data-driven analysis to establish its viability. It was your most clicked link of 2019.

Eric Elliott

2. New ES2018 Features Every JavaScript Developer Should Know — We're now looking forward to ES2020 and we've had ES2019 in 2019 too, but this post remains packed with interesting examples of spread properties within object literals, asynchronous iterators and asynchronous iterables, Promise.prototype.finally, and other features that are still not exactly common to see in the wild.

Faraz Kelhini

The Complete ⚛️ React Learning Path — Take your React to the next level to find out what it is fully capable of with this comprehensive learning path.

Frontend Masters sponsor

3. 43 JavaScript Questions, With Their Answers Explained — Whether for fun or a job interview, this remains an interesting set of JavaScript-related questions, complete with explanations of the answers.

Lydia Hallie

4. I Don't Hate Arrow Functions (But..) — Arrow functions (=>), as introduced in ES6, have generally been a much welcomed addition to JavaScript but Kyle Simpson reminded us they’re not suitable in every scenario and created an ESLint plugin to help you keep a handle on their use.

Kyle Simpson

5. Responsible JavaScript: A Three Part Series — We originally only linked to part one of this great series where Jeremy Wagner plotted a course to avoid the unnecessary bloat and inaccessible patterns of modern JavaScript trends.. but now you can enjoy part 2 and part 3 too, where he went into more technical depth on bundling and handling third-party scripts.

Jeremy Wagner

6. What’s New in JavaScript — At this year’s Google I/O ’19, Mathias Bynens and Sathya Gunasekaran of the V8 team gave a fantastic 30 minute ‘state of the union’ talk on the state of JavaScript as a language and what new features are being baked in.

Google I/O video

💻 Jobs

JavaScript Developer at X-Team (Remote) — Work with the world's leading brands, from anywhere. Travel the world while being part of the most energizing community of developers.

X-Team

Senior Software Engineer, Frontend — Use the latest tech to mold an innovative, empathy-centric experience for creators to order fast, high-quality parts (forging space robots to animatronics).

Fictiv

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

📘 The most popular articles & tutorials of 2019

The Cost of JavaScript in 2019 — Addy Osmani presented a 2019 update to his Cost of JavaScript in 2018 article in both video and article forms. If you still want to get a feel for where the true bottlenecks are with JavaScript, this is a must read.

Addy Osmani

Should We Rebrand 'JavaScript'? — This thoughpiece provoked quite a bit of discussion in the community over the problems (or not) with ‘JavaScript’ as a name. I think we'll see more on this front in 2020.

Kieran Potts

First Online Mentored Software Bootcamp w/ Job Guarantee — Get a job or your money back with Springboard’s online bootcamp. Benefit from 1:1 mentorship, our exclusive curriculum, and top career coaching.

Springboard (Software Engineering Career Track) sponsor

When Should You Be Using Web Workers? — Web Workers provide a way to run JavaScript in background threads in the browser and you’d think using them as much as possible would be a good thing.. right? Current frameworks make this tough, says Surma, who shows us why we should be working to change this ASAP.

Surma

Practical Ways to Write Better JavaScript — You’re not necessarily going to agree with all of them (e.g. “Use TypeScript”!) but this is a reasonably solid batch of points to think about overall.

Ryland Goldstein

JavaScript Symbols: But Why? — Not played with symbols (a new data type introduced with ES6) yet? This is a gentle way to get up to speed with not only what they are but why you might use them.

Thomas Hunter II

Make 2020 the Year to Master MongoDB. Try Studio 3T Today — Generate driver code for JavaScript, Python, Ruby and more? Build queries fast with our drag & drop editor? Of course.

Studio 3T sponsor

Using Native JavaScript Modules in Production Today“now, thanks to some recent advances in bundler technology, it’s possible to deploy your production code as ES2015 modules—with both static and dynamic imports—and get better performance than all non-module options currently available.”

Philip Walton

7 Tricks with Resting and Spreading JavaScript Objects — Using modern JS features to merge objects, organize properties, and more.

Joel Thoms

📺 The most popular videos of 2019

▶  Why I Was Wrong About TypeScript — Smells like an opinion-driven talk, but actually covers the history behind compile-to-JS languages, how we got to a point where interest in TypeScript is growing strongly, and why it’s worth taking seriously.

TJ VanToll

▶  Why 0.1 + 0.2 === 0.306-00000000000004: Implementing IEEE 754 in JS — Head to your node CLI right now and type in 0.1 + 0.2. If the answer confuses you, this is the video for you. And even if you know why, working with the building blocks behind floating point representations is just cool anyway.

Low Level JavaScript

Video Developer Report - Top Trends in Video Technology 2019

Bitmovin sponsor

▶  Keep Betting on JavaScript — Kyle Simpson presents a history lesson of JavaScript, looks at how a variety of features were (or weren’t) introduced, and compels us to think about the future of the Web and JavaScript as we contribute and ‘place bets’ on technologies.

Kyle Simpson

▶  A Look at Deno: A New(ish!) JavaScript Runtime — Ryan originally created Node about ten years ago but over the past couple of years he’s been working on Deno, a non-Node compatible, TypeScript-focused runtime with some interesting features. (Note: Poor audio until a few minutes in.) I suspect we'll hear a lot more about this in 2020.

Ryan Dahl

🔧 The most popular code & tool releases of 2019

Svelte 3 Released: Rethinking Reactivity — Svelte is one of the most interesting UI frameworks out there as it’s not scared of taking a unique approach. Rather than running in the browser, Svelte runs at build time, compiling your app into more efficient runtime JavaScript. Svelte 3 took some major steps forward, particularly in helping you write less code.

Rich Harris

Mithril.js 2: A JavaScript Framework for Building Brilliant Applications — Mithril is a really neat alternative to things like Vue, React or Angular. It’s very compact and fast (so ideal for mobile), runs a bit closer to vanilla JS than the alternatives, and is great for tying together vanilla JS libraries rather than needing its own alternatives.

Mithril

RunJS: A JavaScript 'Scratchpad' Tool for the Desktop — Write and run JavaScript instantly. Useful for learning, experimenting, or perhaps even creating screencasts, tweets, or similar educational content. Originally macOS only but now supports Windows and Linux too.

Luke Haas

Pixi.js 5: Create Beautiful 2D Web Experiences — Boasts the ‘fastest, most flexible 2D WebGL renderer’ to let you take advantage of hardware acceleration without getting involved in WebGL or 3D concerns. Check out demos for what the code looks like and what you’d use it for. There’s also a Pixi Playground for quickly crafting your own experiments.

PixiJS

Babylon.js 4.0: The (Very) Powerful WebGL Graphics Engine — Such a significant release that they released a 2 minute video trailer for it! Want to play? Enjoy this editable live demo.

Microsoft

Postwoman: An API Request Builder and Tester — A free alternative to Postman, a popular app for debugging and testing HTTP APIs. Postwoman works in the browser and supports HTTP and WebSocket requests as well as GraphQL. Insomnia is a similar tool if you want to run something as a desktop app.

Liyas Thomas

FlexSearch.js: A Full Text Search Library — Claims to outperform all of the alternatives while supporting features like multi-word matching and phonetic transformations. Happy in both the browser and Node.js.

Nextapps GmbH

Just: A JavaScript Task Library from Microsoft — If you’re familiar with Ruby’s rake, it’s a bit like that. Define tasks in JavaScript, run them with just (which works fine without installation using npx) and you get a bunch of nice features like logging and task composition.

Microsoft

Node-RED 1.0 Released — Node RED is a flow-based, visual programming tool (aimed primarily at hardware automation) that’s built on top of Node.js. Despite only reaching 1.0 in 2019, it’s a mature project used in numerous real world IoT projects.

Nick O'Leary