Not exactly accurate.
Drew Powers
961

The post is not advocating against dependencies, but using them sparingly.

It’s ok to add a dependency you don’t understand. Here are some examples:

  • NodeJS is a dependency for your development work, programmers rarely understand how the code works and they don’t need to be able to write it by themselves if they want to.
  • js-cookie is a dependency that encapsulates how to deal with browser cookies. You don’t need to know every single nuance of the RFC 6265 if you want efficiently encode/decode values. It will take many days for you to do it. In fact, you should even avoid cookies in your application if you can, but that's a separate story.
  • Eslint allows some static analysis to your code, that's useful to make sure you're not doing some common mistakes and enforce a consistent codebase.
  • TypeScript is useful to make sure you don't change the input and output types of your functions by mistake.

But now that you touched Redux…

Redux is a library that incorrectly implements the Event Sourcing architecture, which makes it less robust and less extensible. Redux (for being a package) binds you into versioning, we all know what happens if you start tying your core architecture into a vendor library or framework: a cost of change.

Event Sourcing can be implemented in incremental steps, while for Redux you either get all the features or you don’t. To change Redux you need to change another repository and, if the maintainers agree with the changes, then update the version in your project. All that just to change your core application code, because it’s tied to that vendor.

Event Sourcing is so abstract that you don't need any tools for it.

It might be ok if you’re an agency that wants to make things fast and build throwaway code afterward, but Redux definitely does not scale for every single use case out there. It sounds an unpopular thought, but imagine saying the same about Angular two way binding years back? People would call you crazy. Now people use React to avoid all that Angular magic. The same is with Redux today.

It might take a while for people to notice that there are tradeoffs for adding dependencies and that they’re not applicable in all circumstances. However, those tradeoffs might not be that obvious for everybody.

Always thrive to reduce code.

I would rather say not to try to reduce just code, but also runtime complexity, and that includes dependencies.

Like what you read? Give Fagner Brack a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.