Another great talk by the legend himself, Dan Abramov. This time he talks about why the JavaScript ecosystem is the way it is and what can be done abot it.

Dan argues that the main problem with current ecosystem is not the amount of new libraries and frameworks that get released constantly, and the new standards that come along with it. The biggest cognitive load on even the most experienced programmers comes due to the sheer amount of configuration that one has to do as part of development.

He proposes the following solutions to at least somewhat alleviate the problem:

  1. Configuration should not get in the way of getting started. There is almost always a sensible default.
  2. Resist adding more configuration than absolutely necessary. Christopher Chedeau, the creator of Prettier, argues that the absolutele necessary config option is one where a sizeable chunk of the community wouldn't use the tool at all if such option would not exist.
  3. Require certain configs only at the point when it becomes necessary i.e. disclose advanced features progressively.
  4. Mind your output. Be careful not only about your error messages but also about how they are displayed.
  5. Create reusable toolboxes. This means that instead of forcing the end user to download the boilerplate code, you should encapsulate the internal workings of the system and provide a really simple API. This provides a clean abstraction level to work with.

I have to say that I completely agree with Dan on all these points and most importantly, I do think that configuration is the main problem we are facing now in the JavaScript community. I can tell from my own experience that it's a real pain in the ass. However, I do sincerely believe that this situation is temporary and we will crawl out of this hole eventually. Just keep on trucking!