#443 — June 28, 2019

Read on the Web

JavaScript Weekly

The Cost of JavaScript in 2019 — Almost a year ago, we linked to Addy Osmani’s Cost of JavaScript in 2018 article, and he’s back with an update for 2019 in both video and article forms. If you want to get a feel for where the true bottlenecks are with JavaScript right now, this is a must read.

Addy Osmani

Bliss.js: Making Native APIs Nicer to Use from Vanilla JS — At first glance, you might think this looks a bit like jQuery, but it’s lighter and built with vanilla JS and modern standards in mind.. it just cleans up the rough edges of working with native browser APIs. The latest version includes some new methods such as $.load for loading JS or CSS resources and $.when for deferring code execution.

Lea Verou

New Course: 💡 Functional Light JavaScript by Kyle Simpson — Apply functional programming concepts in JavaScript to make your programs more readable and less error-prone. Tour through function purity, currying, immutability, recursion, list operations and concepts like monads and transduction.

Frontend Masters sponsor

The Secret of Good Electron Apps — Without being too spoilery, the ‘secret’ to making better Electron apps is to take as much of the processing local to the app itself rather than relying entirely upon remote services (i.e. just being a glorified Web browser).

James Long

▶  The Weird History of JavaScript — A fun, 10 minute fly through of the history of JavaScript. This 10 minutes will give you some fun facts for your next dev conversation or JavaScript job interview ;-)

Fireship

The State of Angular in 2019 — We don’t focus on much beyond the big releases and best tutorials when it comes to Angular, but if you’ve been wondering what’s going on with it, here’s an overview of the state of the Angular ecosystem.

Giancarlo Buomprisco

▶  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

💻 Jobs

Senior Node.js API Engineer - Exodus (Remote) — Do you live for beautiful APIs? We're looking for a meticulous, obsessive leader to focus on our backend API services.

Exodus

Stream Is Hiring a Senior React Native Engineer in Boulder, Colorado — Enjoy problem-solving and working with React Native? Do you thrive in a team environment? Join us at Stream by applying now.

Stream

Find a JavaScript Job on Vettery — Vettery specializes in tech roles and is completely free for job seekers.

Vettery

📘 Tutorials, Opinions, and Videos

A Look at Object.fromEntries — The new Object.fromEntries API performs the inverse of Object.entries. It’s an ES2019 feature but is already widely supported.

Mathias Bynens

The 10 React Component Commandments — A handy walkthrough of 10 ‘practical commandments’ for creating components that you can share widely and that other developers will actually want to use.

Kristofer Selbekk and Caroline Odden

Building a Data Stream for IoT with NiFi & InfluxDB — Combining NiFi & InfluxDB results in secure, accessible, and usable IoT data streams. This solution enables a single data view across all facilities providing proactive maintenance, failure detection, and more.

InfluxData sponsor

Adding a WebAssembly Component to a React App with AssemblyScript“If I’m working on a React application for example, could I easily add some WebAssembly to support some things that perhaps need to run a bit quicker?” The answer is yes and here’s a practical demo.

Andy Lee

HTML Includes That Work Today — I’m not sure why we forgot to include this at the time, but it’s a rather neat way to use iframe and a little JavaScript to pull external resources (e.g. SVG or HTML) into the current DOM.

Scott Jehl

▶  Let's Analyze an Exploited NPM Package — A fascinating look at the technicalities of what happened during last year’s event-stream backdoor incident.

Jarrod Overson

Product Announcements: MongoDB 4.2, Auto Scale, Full-Text Search, Data Lake & More.

MongoDB sponsor

An Introduction into Stencil.js — Stencil is a compiler that generates Web Components developed by the Ionic team.

Gabriel Tanner

🔧 Code and Tools

The TypeScript Playground — The online TypeScript sandbox has just had a major upgrade. It supports all compiler flags, different TS versions, has an built-in formatter, and more. Want to experiment with TS? Use it.

TypeScript Project

svelte-adapter: Use Svelte Components with Vue and React — An interesting experiment. See it in action on CodeSandbox.

pngwn

Riot.js: A Simple and Elegant Component-Based UI Library — An interesting alternative UI library that might click with you. “Think React + Polymer but without the bloat.” GitHub repo.

Riot.js

moveTo: A Dependency-Free Scroll Animation LibraryDemo page. Supports different easing functions (including custom ones).

Hasan Aydoğdu

Gauge + Taiko = No More Flaky Tests — Everything you need for reliable end to end testing! Gauge and Taiko are free and open source tools created by ThoughtWorks.

Gauge sponsor

Mavo: Build Reactive Webapps with Just HTML and CSS — Extends HTML with extra syntax to describe persistent webapps that can manage state. This week’s release is the first in over a year and includes a lot of changes.

Lea Verou

iconv-lite 0.5: Convert Character Encodings in Pure JavaScript — It’s just had its first release in almost a year.

Alexander Shtuchkin

Elliptic: Fast Elliptic Curve Cryptography in Plain JS

Fedor Indutny

TWGL.js: A Tiny WebGL Helper Library — If you want to write and use actual WebGL but for it to be easier and less verbose, this is for you and the code comparisons will win you over in seconds.

Gregg Tavares

DarkModeJS: A Utility Package for Managing Dark Mode — Uses the matchMedia API and the prefers-color-scheme media query to fire functions whenever a user is in dark mode (or changes the mode).

Assortment

🐦 VIRAL JS TWEET O'THE WEEK

P.S. Did you know we're on Twitter as well? Follow us @JavaScriptDaily