Batteries and Buildings
[2025-07-01]
In categorizing software, a new classification that slides under people's noses is batteries vs no-batteries.
TL;DR. software is said to be battery included if it works out of the box and it has all the necessary materials to build your software without external packaging While the latter means you add your own packages.
burn the batteries#
First principles are the most important part of learning anything. For instance, Express is moderately battery-included, offering more granularity compared to Flask. The thing with battery included framework is that it builds abstraction. The further you get from the metal, The easier it is to focus on the pivot point that matters in what you are building. But the ultimate cost of abstraction is that you lack granularity which helps in troubleshooting as you know where everything is in your whole architecture.
Stepping away from Flask vs Express, let's look at Vim. Vim has a famous distro, lazyvim, which most beginners use, but after 8-12 months step away from it. One of the causes is lazyvim being heavily battery-included. It is built in a lot of plugins you may never use. This is how bloat is born, trying to build something that fits everyone's needs.
Price of no-batteries#
The reason one might flask over express is how super boilerplate it is. You have to set up every aspect of the whole backend by installing the libraries for most of the things which becomes tedious to the builder.
Secondly, one might end up building a bloated architecture in the wake to compensate for the lack of batteries. Battery-included framework devs, spend some time optimizing the bundle of libraries which you might use hence the box architecture might be a better choice.
... continue reading