- It has helped many developers organize their "write logic" and state management, and made it easier to test that code
- Time travel debugging is a fantastic tool for understanding what happens in your application
- One of my favorite quotes: "Redux is a generic framework that provides a balance of just enough structure and just enough flexibility. As such, it provides a platform for developers to build customized state management for their use-cases, while being able to reuse things like the graphical debugger or middleware."
- And it doesn't hurt that Dan Abramov is a well-known figure in the React community, and an incredibly helpful and friendly person too.
No, Javascript doesn't have immutability built-in (sadly), but that doesn't mean you should totally give up on applying those principles in Javascript code. There's WAY more developers writing JS than Clojurescript, and those devs can still make use of tools like Redux in their applications. Besides, there's a variety of approaches for handling data immutably, whether it be `Object.assign`, the Stage 3 object spread operator, Immutable.js, or the many immutable update utility libraries out there.
Your comment about speed doesn't make sense. A few function calls and switch statements will execute quickly overall, and perf benchmarks will show that your reducer logic is almost never going to be the bottleneck in a Redux application.
Some links for further related reading:
- https://medium.com/@dan_abramov/you-might-not-need-redux-be4...
- http://redux.js.org/docs/faq/Reducers.html#reducers-use-swit...
- http://redux.js.org/docs/faq/Performance.html#performance-al...
- https://github.com/markerikson/react-redux-links/blob/master...
- https://github.com/markerikson/redux-ecosystem-links/blob/ma...