---
title: "TensorFlow.js, Babel 7.3, Jest 24, and the future of JavaScript"
publication: "JavaScript Weekly"
issue: 422
published_at: "2019-02-01"
canonical_url: "https://javascriptweekly.com/issues/422"
---

This week's JavaScript news       

#422 — February 1, 2019 

[Read on the Web](https://javascriptweekly.com/issues/422)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/axahpxg7dda26qv4nztt.jpg)](http://2ality.com/2019/01/future-js.html)  

[Future JavaScript: What's Still Missing?](http://2ality.com/2019/01/future-js.html) — We’ve looked at [ES2018](https://css-tricks.com/new-es2018-features-every-javascript-developer-should-know/) and [ES2019](https://developer.okta.com/blog/2019/01/22/whats-new-in-es2019) and it seems JavaScript is evolving at a good pace, but Dr. Axel asks.. _what’s still missing?_ 

Dr. Axel Rauschmayer   

[Google Play Store Now Open for Progressive Web Apps](https://medium.com/@firt/google-play-store-now-open-for-progressive-web-apps-ec6f3c6ff3cc) — Chrome 72 for Android shipped the _Trusted Web Activity_ feature meaning you can now distribute PWAs in the Google Play Store - [via our Mobile-focused newsletter](https://mobiledevweekly.com/?utm_source=email&utm_campaign=cross_promo&utm_content=jw). 

Maximiliano Firtman   [![\](https://copm.s3.amazonaws.com/312dc19d.png)](https://www.bugsnag.com/platforms/javascript/?utm_source=cooperpress&utm_medium=cpc&utm_content=newsletter-sponsorship&utm_campaign=javascript&utm_term=20190201) 

[Swift and Straightforward Bug Fixes for Your JavaScript Apps](https://www.bugsnag.com/platforms/javascript/?utm_source=cooperpress&utm_medium=cpc&utm_content=newsletter-sponsorship&utm_campaign=javascript&utm_term=20190201) — Identify impactful errors at a glance. Sort errors by event count or users impacted to find ones that occur most frequently or affect a large segment of users. Get to the root cause of errors quickly with automatic diagnostic collection. Try it free. 

Bugsnag sponsor   

[FlexSearch.js: A Full Text Search Library](https://github.com/nextapps-de/flexsearch) — 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   

[Jest 24 Released: The JS Testing Framework](https://jestjs.io/blog/2019/01/25/jest-24-refreshing-polished-typescript-friendly) — It’s been 8 months since the last major release and it’s a big one with built-in support for TypeScript, improved assertion messages, and a fix for an annoying `console.log` bug, plus it gets a [new Web site](https://jestjs.io/en/). 

Simen Bekkhus   

[Severe Security Vulnerabilities Found in Bower](https://snyk.io/blog/severe-security-vulnerability-in-bowers-zip-archive-extraction/) — Bower, a popular web package manager, is vulnerable to archive extractions, so if you’re still using it, upgrade to [version 1.8.8.](https://github.com/bower/bower/releases/tag/v1.8.8) 

Liran Tal (Snyk)    

📣 **A Note..** 

If you don't always make it to the end of an issue, make this week an exception as we've interviewed Sandeep Gupta, the product manager of [TensorFlow.js](https://js.tensorflow.org/), an increasingly important part of the JavaScript ecosystem in the machine learning space.  

💻 Jobs  

[React Native Developer - Remote](https://replaygaming.bamboohr.co.uk/jobs/view.php?id=3) — Join our fully remote team and help bring one of the leading recreational poker platforms to the mobile world. 

Replay Gaming   

[Become a Part of European Remote Work Culture](https://europeremotely.com/) — We built the first Europe-focused remote jobs board. No US only positions. Work during European working hours. 

Europe Remotely   

[Find A 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 specializes in developer roles and is completely free for job seekers. 

Vettery  

📘 Tutorials and Opinions  

[How to Remove Array Duplicates in ES6](https://medium.com/dailyjs/how-to-remove-array-duplicates-in-es6-5daa8789641c) — A look at filtering out duplicates from an array and returning only the unique values in three ways, with `Set`, `filter`, and `reduce`. 

Samantha Ming   

[Improving Code Readability With `async`/`await`](https://benmccormick.org/2019/01/28/readable-async) 

Ben McCormick   

[Type-Driven Development: Replacing Unit Tests with Types in TypeScript](https://spin.atomicobject.com/2019/01/21/replace-unit-test-types/) — Unit tests are great. But on TypeScript projects, many of them can be replaced with explicit type definitions.. 

Andy Peterson   

[Secure and Accelerate Your Cloud Storage](https://cloudflare.com/lp/workers/ert/secure-and-accelerate-private-content/?utm_source=Workers&utm_medium=Display&utm_campaign=Cooperpress_Secure_Accelerate_LP) — Use Cloudflare Workers to cache content while still preventing unwanted access with HMAC & JSON Web Tokens. 

Cloudflare Workers sponsor   

[`Object.assign` vs Object Spread in Node](http://thecodebarbarian.com/object-assign-vs-object-spread.html) — The Object spread operator `{...obj}` is similar to `Object.assign()`, so which should you use? 

Valeri Karpov   

[What Is 'Tree Shaking' and How Does It Work?](https://bitsofco.de/what-is-tree-shaking/) — Ire is great at explaining concepts in a way anyone can understand. 

Ire Aderinokun   

[Building an Image Recognition App using ONNX.js](https://heartbeat.fritz.ai/building-an-image-recognition-app-using-onnx-js-c7147f4f291b) — ONNX.js is a JavaScript library by Microsoft for running ONNX (Open Neural Network Exchange) models in browsers and on Node. 

Zain Sajjad   

[Creating Container and Presentational Components in Angular](http://www.dotnetsurfers.com/blog/2019/01/21/creating-container-and-presentational-components-in-angular/) 

Latish Sehgal   

[A Year on TC39: Going from Oblivious to Co-Chair in 14 Months](https://medium.com/braintree-product-technology/a-year-plus-a-little-on-tc39-a1acb87eb862) — You’ll enjoy this story if you’re interested in the way the standards behind JavaScript come together and get discussed. 

Aki Rose (Braintree)  

🔧 Code and Tools  

[Babel 7.3.0 Released](https://babeljs.io/blog/2019/01/21/7.3.0) — Includes support for named capturing groups in regular expressions, private instance accessors, and the [smart pipeline operator](https://github.com/tc39/proposal-pipeline-operator). 

Nicolò Ribaudo   

[A Much Faster Way to Debug Code Than with Breakpoints or console.log](https://wallabyjs.com/docs/intro/value-explorer.html?utm_source=cooperpress&utm_medium=email&utm_campaign=javascriptweekly&utm_content=javascriptweekly) — Wallaby catches errors in your tests and displays the results of expressions right in your editor as you type. 

Wallaby.js sponsor   

[Finance.js: A Library for Common Financial Calculations](http://financejs.org/) — Covers several things like amortization, compound interest, ROI.. 

Essam Brady-Jobory   

[TypeScript 3.3 Released](https://blogs.msdn.microsoft.com/typescript/2019/01/31/announcing-typescript-3-3/) — A smaller than usual release with no breaking changes. 

Microsoft   

[Relay: A Framework for Building Data-driven React Applications](https://github.com/facebook/relay) — [Version 2](https://github.com/facebook/relay/releases/tag/v2.0.0) just came out and now uses the new Context API rather than the legacy one. It also steps up to React 16. 

Facebook   

[Readability.js: Extract the Readable Content from an HTML Document](https://github.com/mozilla/readability) — A standalone version of the library used to power Firefox’s [Reader View.](https://support.mozilla.org/en-US/kb/firefox-reader-view-clutter-free-web-pages) 

Mozilla   

[Improve Video Quality with Per-Title and 3-Pass Encoding](http://go.bitmovin.com/per-title-ladder-benchmark-tool?utm_source=paid-newsletter&utm_medium=cooperpress&utm_campaign=javascript-weekly&utm_content=per-title-encoding) 

Bitmovin sponsor   

[Nuxt.js 2.4: Framework for Server-Rendered Vue.js Apps](https://github.com/nuxt/nuxt.js) — [2.4](https://github.com/nuxt/nuxt.js/releases/tag/v2.4.0) introduces smart prefetching, TypeScript support (seems to be the fashion!), and more. Plus a formal release schedule has been adopted. 

Chopin, Chopin, et al.   

[A Vue.js Declarative Animations Library](https://brianrosamilia.github.io/vue-declarative-animation/#/) — A declarative Vue template wrapper around [Velocity.js.](http://velocityjs.org/) 

Brian Rosamilia   

[The Lounge: A Modern, Self Hosted Web-Based IRC Client](https://github.com/thelounge/thelounge) — [Version 3](https://github.com/thelounge/thelounge/releases/tag/v3.0.0) is a major release with lots of updates. 

The Lounge       ![Sandeep Gupta](https://res.cloudinary.com/cpress/image/upload/v1548693374/awuzr3hfqo9b6r7csysp.gif) 

💬 A Q&A with…
Sandeep Gupta
Product Manager for TensorFlow.js at Google
_Mountain View, CA_  

[TensorFlow](https://www.tensorflow.org/) is an open-source machine learning framework (and dataflow programming in general) developed at Google that has seen a burst in popularity recently. 

[TensorFlow.js](https://js.tensorflow.org/), released less than a year ago, brings the power of TensorFlow to _JavaScript_ developers keen to do [things like in-browser machine learning](https://medium.com/tensorflow/introducing-tensorflow-js-machine-learning-in-javascript-bf3eab376db) (though Node is also supported), and we caught up with its product manager to find out a little more about it: 

How do you see TensorFlow.js opening up new opportunities versus the more established Python and C TensorFlow worlds? 

In the browser, TensorFlow.js offers unique opportunities by taking advantage of the interactive user experience, sensors such as webcam, microphones, GPS, etc, and the ability to offer rich, real-time visualization experiences. See some fun demos [here](https://js.tensorflow.org/). For enterprises using Node.js, building ML solutions using TensorFlow.js means that the same teams working on their backend infrastructure can also integrate ML pipelines directly without having to stand-up separate Python-based data-science teams. 

What's the most interesting use of TensorFlow.js you've seen so far? 

We are continuously surprised by novel and interesting use cases of TensorFlow.js. Several examples are listed [here in our gallery page.](https://github.com/tensorflow/tfjs/blob/master/GALLERY.md) We love projects like [Creatability](https://experiments.withgoogle.com/collection/creatability) and [Handsfree.js](https://handsfree.js.org/#/), which allow you to make more accessible and handsfree interfaces and experiences for the Web and open incredible new opportunities. With server-side TensorFlow.js, [Magenta Studio](https://magenta.tensorflow.org/studio/) has built several amazing music generation plug-ins using powerful ML techniques. 

While machine learning is perhaps the most noteworthy use case for TensorFlow, what interesting uses for TensorFlow.js do you see outside of that space? 

At a low level, TensorFlow.js is fundamentally a math and linear algebra library so it enables non-ML numerical and computational uses. A great example is the work done by Uber in building [their Manifold application.](https://eng.uber.com/manifold/) Although Manifold is a tool for Uber's ML visualizations, they are using TensorFlow.js for its extremely fast numerical computations in JavaScript. 

But we are still in the early days of large scale data science in JavaScript. To make TensorFlow.js a widely-used general-purpose computational library, a lot of other numerical functionality would be needed in JS - similar to the rich data analysis toolset that exists in the Python world eg. Numpy, Pandas, matplotlib, etc.   

Sandeep Gupta is the product manager of [TensorFlow](https://www.tensorflow.org/) and [TensorFlow.js](https://js.tensorflow.org/).          

Curated by [Cooperpress](https://cooperpress.com/) and [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
