I frequently disagree with Eric Elliott's opinions (like claiming that TypeScript is useless, or that everyone should learn "concatenative inheritance"). That said, this article basically matches how I would describe the situation: hooks like `useContext` and `useReducer` overlap with some of the ways you'd use Redux, but overall are a different tool for different use cases. Both have their place, and there's still lots of reasons to use Redux.
If you're referring to ["The TypeScript Tax"](https://medium.com/javascript-scene/the-typescript-tax-132ff...), Eric never said it was useless. "Many developers love using it, and there are many aspects of the TypeScript developer experience I genuinely love." There's a whole section called "What I Love About TypeScript" and he even uses it in some of his open-source projects.
What he actually says is that there is a cost to using TypeScript (an obvious fact).
And most JavaScript developers use [object concatenation](https://medium.com/javascript-scene/the-hidden-treasures-of-...) all the time, especially with Redux. He's right - every JavaScript developer should know what it is and how to use it, even if they don't recognize it by the word "concatenation".
I've tackled this topic in a few places:
- Reactathon 2019 Keynote: The State of Redux (https://blog.isquaredsoftware.com/2019/03/presentation-state...)
- Redux - Not Dead Yet! (https://blog.isquaredsoftware.com/2018/03/redux-not-dead-yet...)
- Thoughts on React Hooks, Redux, and Separation of Concerns (https://blog.isquaredsoftware.com/2019/07/blogged-answers-th...)