JavaScript has come a long way since its humble beginnings as a clunky, exclusively front-end scripting language. We saw some big developments in the JavaScript landscape during 2019, including the widespread adoption of React hooks and functional programming concepts, steady conversion to TypeScript, and continued domination of React in the front-end framework ecosystem.
With all that progress, it can be difficult to keep up with the changes. So, I put together a list of the top 10 JavaScript articles I read over the past year.
I believe these articles are important for developers to read. Many of them were written by influential JavaScript developers and thought leaders; others just had superb content. I chose them based on content and quality, and they are not listed in any particular order.
1. The State of JavaScript 2019
The State of JavaScript 2019 is a collection of statistics and facts describing the world of JavaScript in 2019.
To not include the works of Sacha Greif and Raphaël Benitte in a list of influential JavaScript publications 2019 would be a huge oversight. The State of JavaScript in 2019 describes everything JavaScript:
- the continued popularity of React in the front-end framework ecosystem
- the rise of TypeScript quantitatively
- the demographics of JavaScript
- the new back-end frameworks
- and more
For new developers looking to pick up the most in-demand skills and for seasoned pros (colloquially referred to as "JS Ninjas" by recruiters) looking to know their worth, this is an annual must-read.
2. A Complete Guide to useEffect
A Complete Guide to useEffect is Dan Abramov's take on how to correctly use the useEffect hook in functional React.js.
It would also be an incomplete list without citing work by Dan Abramov. This article from 2019 on useEffect() is simply a must-read. Dan describes why and how to refactor class components and lifecycle methods like componentDidMount to functional components with hooks. Beyond the official React.js documentation, this is a great place to start if you're interested and learning modern React with hooks.
3. Thinking in React Hooks
Thinking in React Hooks describes how to change how you think about writing React.js with modern functional patterns.
This and the next article continue the theme of functional programming and the emergence of React hooks in 2019. Amelia Wattenberger’s article speaks to the “why” of functional programming patterns in React.js and JavaScript more generally.
4. Why Isn't X a Hook?
Why isn’t X a Hook? allows you to deeply understand the motivations behind React.js hook implementations and patterns.
Dan Abramov’s second article to make the list in 2019 is a discussion about the philosophy underpinning React.js hook development. Hooks have taken the React.js community by storm and are certainly one of the highlights of 2019; this article illustrates some of the motivations behind the folks working on them.
5. Functional JavaScript: Traversing Trees with a Recursive Reduce
Functional JavaScript: Traversing Trees with a Recursive Reduce is a case study about how to solve real-world problems with functional programming in JavaScript.
James Sinclair’s 2019 public work on functional JavaScript is a true asset to the community. All of his articles are great but this one stood out to me for its elegance and utility in front-end web development. If you weren’t raised on functional languages like Scala, then some of these concepts may seem difficult to grasp at first but they're critical to writing testable, extensible, and composable JavaScript. This is another must-read for developers looking to write more functional JS.
6. JavaScript Clean Code: Best Practices
JavaScript Clean Code - Best Practices is a great resource to help you to improve your code quality with JS best practices.
After reading this article by Milos Protic and absorbing its wisdom, your coworkers will marvel at your newfound abilities to write clean JS. There's a ton of content in this piece and it’s all applicable, actionable, and correct. Please write JavaScript code like this in 2020!
7. Option Chaining
Option Chaining is the best addition to JavaScript since async/await.
I included this documentation published in MDN on option chaining because I think the feature is one of, if not the, most important new additions to vanilla JavaScript in 2019. Option chaining and nullish coalescing are amazing quality of life improvements that I think all JavaScript developers should use. Personally I use this language feature multiple times a day and it makes my JS code much cleaner and more readable.
8. I've Forgotten More JavaScript Than Most People Ever Learn
I’ve Forgotten More JavaScript Than Most People Ever Learn picks the brain of a community thought leader.
Most JavaScript developers will find this insightful interview of Kyle Simpson, “a living JavaScript classic, the truest embodiment of the spirit of open source” an interesting read. This is a worthwhile intermission from reading raw JS code and Simpson's insights about the past and future of the language are profound.
9. Design Patterns in Modern JavaScript Development
Design patterns in modern JavaScript development features Singleton, Observer, and Facade patterns from a JS context.
Kristian Poslek’s popular article on design patterns stands out in 2019. Even though he doesn't provide specific examples and code, I thought his insights were valuable enough to include in this list. This is an interesting read for those wondering how academic design patterns have a place in real-world JS implementations.
10. Fix Memory Problems
Fix Memory Problems helps us to debug Node.js/JavaScript memory leaks with Chrome devtools.
Kayce Basques discusses how developers can use Google Chrome to quickly debug JavaScript and Node.js memory issues. I included this technical write-up because I think the tools discussed here are important and helpful given Chrome’s dominance in the consumer marketplace and as the web developers browser of choice. (See The State of JavaScript 2019.) Memory leaks are often hard to diagnose in a large JavaScript codebase and these tools have helped me in the past.
I hope you'll take some time to read the articles listed above. I found these articles to be the most impactful, insightful works of 2019 in JavaScript-land and I hope you'll agree.