---
title: "The State of JavaScript 2018"
publication: "JavaScript Weekly"
issue: 413
published_at: "2018-11-23"
canonical_url: "https://javascriptweekly.com/issues/413"
---

This week's JavaScript news       

#413 — November 23, 2018 

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

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/jmkninnr1h60xxasxx4z.jpg)](https://2018.stateofjs.com/)  

[The State of JavaScript 2018](https://2018.stateofjs.com/) — The results of this popular annual survey are out now. React is the clear, dominant front-end framework of choice. Jest and Mocha are neck and neck in the testing space, and Python is the most common _other_ language for JS developers to use. 

Sacha Greif   

[Hyperscript Tagged Markup: A JSX Alternative using Standard Tagged Templates](https://github.com/developit/htm) — A clever idea, this. It’s JSX-style syntax but in plain JavaScript (using tagged templates) that requires no special transpilation but still supports things like rest spread and referencing components. 

Jason Miller   [![\](https://copm.s3.amazonaws.com/d2a05956.png)](https://www.cloudflare.com/lp/workers/serverless-powered-api/?utm_source=Workers&utm_medium=Display&utm_campaign=Cooperpress_Serverless_API_LP) 

[Create a Serverless Powered API in 10 Minutes](https://www.cloudflare.com/lp/workers/serverless-powered-api/?utm_source=Workers&utm_medium=Display&utm_campaign=Cooperpress_Serverless_API_LP) — Use Cloudflare Workers to create and deploy a serverless API to 150+ data centers. 

Cloudflare Workers sponsor   

[Experimenting with Brain-Computer Interfaces in JavaScript](https://medium.com/@devdevcharlie/experimenting-with-brain-computer-interfaces-in-javascript-8d6cb891fda8) — Can you use JavaScript to analyze your brain? Yep. It’s fascinating to see the domains JS can be used with. I did something similar with an ECG (heart monitor) recently. 

Charlie Gerard   

[WebSockets: A Conceptual Deep-Dive](https://www.ably.io/concepts/websockets) — An extensive look at the world of WebSockets, the browser technology that can provide a fast, full-duplex persistent connection between a server and client. 

Ably   

[CMS.js: A Client-Side JavaScript Site Generator](https://github.com/chrisdiana/cms.js) — A Markdown-oriented site generator in the spirit of Jekyll but with no server-side scripting at all (it simply fetches Markdown from your site and dynamically renders it). 

Chris Diana   

[Google to Pay Frameworks to Implement 'Performance-First' Code](https://www.zdnet.com/article/google-to-pay-javascript-frameworks-to-implement-performance-first-code/) — Google is launching a $200K fund to sponsor performance-focused development on third-party JavaScript frameworks. 

ZDNet  

💻 Jobs  

[Sr. Angular Engineer at Services/Product Firm (Toronto /Remote)](https://jobs.lever.co/nrwl/8c921d98-a4b4-485a-a2a1-807d3e40bcb3) — Do you love Angular and helping teams build products? Join forces with thought-leaders and Fortune 500 teams. Code, teach, speak. 

NRWL.IO   

[Lead Front-End Developer with a Passion for UX (Remote)](https://www.interaction-design.org/about/careers) — Lead our front-end efforts, create tactful and experience-enhancing animations, and ultimately impact the way people learn design. 

The Interaction Design Foundation   

[Join Our Career Marketplace & Get Matched With A Job You Love](https://www.hired.com/javascriptweekly) — Through Hired, software engineers have transparency into salary offers, competing opportunities, and job details. 

Hired  

📘 Tutorials and Opinions 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/rxyymw0jq9iyv0rvpjcp.jpg)](https://www.smashingmagazine.com/2018/11/interactive-infographic-vue-js/)  

[Building an Interactive Infographic with Vue.js](https://www.smashingmagazine.com/2018/11/interactive-infographic-vue-js/) — A thorough guide to building a dynamic and _interactive_ infographic using Vue.js, SVG and GreenSock (for animation). 

Krutie Patel   

[Tackling UI Complexity with State Machines](https://medium.com/@carloslfu/tackling-ui-complexity-with-state-machines-b3f1eb6d1a97) 

Carlos Galarza   

[Transducers: Efficient Data Processing Pipelines in JavaScript](https://medium.com/javascript-scene/transducers-efficient-data-processing-pipelines-in-javascript-7985330fe73d) — The latest in Eric’s series on functional programming techniques in ES6+. 

Eric Elliott   

[Read Now: The Ultimate Guide To npm](https://pages.nodesource.com/npm-guide-ultimate-nodeweekly.html) — Everything you need to know to know to use the npm CLI, from basic building blocks to time-saving tips and tricks. 

NodeSource sponsor   

[Transpiling and Publishing ES2018 npm Modules with Babel 7](https://blog.vanmulligen.ca/2018/transpiling-es9-node-modules-with-babel-7/) — How to use the latest and greatest JavaScript features but still ensure your packages can be used by as wide an audience as possible. 

Sean van Mulligen   

[Creating iOS 12 Shortcuts with JS and Shortcuts JS](https://medium.com/@JoshFarrant/creating-ios-12-shortcuts-with-javascript-and-shortcuts-js-942420ca9904) — [GitHub repo](https://github.com/joshfarrant/shortcuts-js). 

Josh Farrant   

[Building Your Own Interactive JavaScript Playground](http://krasimirtsonev.com/blog/article/build-your-own-interactive-javascript-playground) — Not something many of us might think we want to do, but it’s interesting to see _how_ we could replicate the underlying functionality of sites like JSBin or Code like CodeSandbox or CodePen if we wanted to. 

Krasimir Tsonev   

[Dart for JavaScript Programmers](https://medium.com/flutter-community/dart-for-javascript-programmers-24c905aadf6) — Possibly helpful advice if you want to work with Google’s [Flutter](https://flutter.io/) mobile dev framework. 

Hillel Coren   

[Using Azure Functions and the Marvel API to Visualize Character History](https://www.raymondcamden.com/2018/11/04/using-azure-functions-and-the-marvel-api-to-visualize-character-history) — A nice collision of the worlds of Marvel, serverless, and JavaScript. 

Raymond Camden   

[How Do Top Developers Deliver Video? - Download the 2018 Video Report](https://hubs.ly/H0dZqxL0) 

Bitmovin sponsor   

[How JSX is a Stellar Invention, Even with React Out of The Picture](https://medium.com/@bluepnume/jsx-is-a-stellar-invention-even-with-react-out-of-the-picture-c597187134b7) 

Daniel Brain (PayPal)      ![Valeri Karpov](https://res.cloudinary.com/cpress/image/upload/v1542838790/cz0u3krahfubcselwlkc.png) 

💬 A Q&A with… Valeri Karpov
JavaScript book author and trainer
_Miami Beach, Florida_ 

Valeri, also known as [The Code Barbarian](http://thecodebarbarian.com/), is a prolific author of JavaScript tutorials and books and was also the person to coin the term [MEAN](http://mean.io/) (as in the **M**ongoDB, **E**xpress.js, **A**ngular and **N**ode.js stack). To celebrate the release of his new book, _[Mastering Async/Await](http://asyncawait.net/jsweekly)_, we've asked him a few questions: 

You're a _very_ prolific JavaScript blogger - what's your secret? 

I don't have any special secret, I've made a personal commitment to writing regularly because I find it helps me refine my ideas. I spend a lot of time coding, and I write as a way to identify general principles from the day-to-day of finding bugs and adding features. Writing gives me a great excuse to try out new libraries or frameworks. 

Have you seen any ways in which async/await are overused or misused that people should avoid? 

The most glaring issue is using async/await with a framework without looking to see _if the framework actually supports it!_ There's probably a lot of developers out there wondering why their async Express route handler isn't sending a response or why their React component's async `componentDidMount` function isn't working with server-side rendering. 

I also see a surprising amount of code that uses `async`/`await` mixed with classic callbacks or promise chains. While passing an async function to a promise's `then()` function as shown below is valid, it misses the point of async/await:  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/mxqyqspiqpioczqepkjs.jpg)](http://asyncawait.net/jsweekly)   

What resources should our readers check out to learn more about async/await? 

- I'm a fan of the [JavaScript.info tutorial](https://javascript.info/async-await). If you've never seen async/await before and just want to start tinkering with it, this is the resource I'd recommend.
- When I first started working with co and generators, it took me a while to get out of my own way and be comfortable writing loops instead of reaching for libraries like [async](https://www.npmjs.com/package/async). My [article on async/await design patterns](http://thecodebarbarian.com/common-async-await-design-patterns-in-node.js.html) has some more advanced examples of using async/await with loops.
- The [Pony Foo article on async/await](https://ponyfoo.com/articles/understanding-javascript-async-await) is also excellent. While it's an older article now, it does a great job explaining how code that uses async/await is every bit as asynchronous and non-blocking as callback-based code. 

Valeri Karpov is the author of [Mastering Async/Await](http://asyncawait.net/jsweekly) — out now.   

🔧 Code and Tools  

[Demoboard: A Live Code/Demo Editor That Integrates with npm](https://frontarm.com/articles/announcing-demoboard/) 

James K Nelson   

[create-yo: Use Any Yeoman Generator with `npm init`](https://boneskull.com/create-yo/) 

Christopher Hiller   

[Black Friday Sale: Quokka.js - Debug Without breakpoints/console.log](https://quokkajs.com/pro/?utm_source=cooperpress&utm_medium=email&utm_campaign=javascriptweekly&utm_content=javascriptweekly) — Quokka displays execution results in your editor as you type. Get it now with a 50% discount. 

Wallaby.js sponsor   

[Nivo: D3.js-Powered React Data Visualization Components](https://github.com/plouc/nivo) — Examples and code on [the official homepage.](https://nivo.rocks/bar) 

Raphaël Benitte   

[D3Funnel: A JavaScript Library for Rendering Funnel Charts using D3.js](https://jakezatecky.github.io/d3-funnel/) 

Jake Zatecky   

[Awesome Angular GraphQL: A Curated Collection of Resources, Clients and Tools](https://github.com/hasura/awesome-angular-graphql) 

Hasura     

🗓 **Upcoming JavaScript Events** 

- [React Day Berlin (November 30 in Berlin, Germany)](https://reactday.berlin/)
- [JS Kongress 2019 (March 11-12 in Munich, Germany)](https://js-kongress.com/)
- [JSHeroes 2019 (April 11-12 in Romania)](http://jsheroes.io/) — Two days of conference talks and workshops.
- [JSConf EU: Call for Speakers (June 1-2 in Berlin)](https://2019.jsconf.eu/call-for-speakers/) — You can now submit talks for the 2019 JSConf EU. The deadline is December 23rd.          

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
