Sean, by using a simple example of an Hello World App in React described the pain of using several tools and a big libraries, just to build a simple application. He said:
Since developers started using JS for multiple purposes, some of the frameworks are over-engineered for simple projects… and those other thousands people, obviously are writing or including lines of code that are too much for that scope… Why? Because we can use JS for almost everything now.
I have seen this before: Almost any Linux distribution is including a compiled version of the kernel that comes with modules that you will never need, like the PlayStation 4 support, or some weird module for a weird old printer… and you just need to watch a video of cats on youtube! 🐈
This means that the complexity of the kernel and the amount of lines of code used are bigger than what is actually required to wach cats on youtube. 🐈 The same happens with languages and Frameworks that are not modular… and Node’s NPM, and open source projects, are always there to help. 👍
Sean’s example was not totally correct from my point of view. Another tool to compile code is not overengineering.
Of course, that is too much for a Hello World, but for bigger projects sometimes I have found several tools time-saving and helpful. In fact React seems to be much less over-engineered compared to Angular’s design, since at the end an Angular Service is just an Object.
You really learn how to choose specific framework and tools with the experience… but as Software Architect I always consider the specific reason behind these tools. React’s has some valid reasons but it has its own way to implement things. 💁 I think it is not that bad considering the better outcome for big projects, that are more than a just a simple Hello World. 😉