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.
We need a rechargeable battery#
A good framework needs to have the ability to strip some of the library and remain with the skeleton and still function as well. The ability to be pluggable is important.
I recently used a flask in a school project and I loved it. I loved it mostly because it was a last-minute task to be done and I needed something that worked out of the box and it fit my needs.
I think frameworks have their purposes, a philosophy, but building software that can be plugged in and unplugged meets most people's needs.
[#framework #vim #bram]