Internalized vs externalized config
Configuration files are a form of active externalism. By configuring software, I am able to reduce the overhead of setting up an environment every time I do a repetitive task. I am externalizing the setup, along with my implementation philosophy for a given tool. This is a tremendously powerful pattern, but there is a trade-off:
Pros
- Potential efficiency gains
- Less behavioral boilerplate1 in the process after setup
Cons
- I lose muscle memory and familiarity from manually setting things how I want every time.
- Incremental deviation from native best-practices or intended use of tools
- Lost opportunities for learning
Footnotes:
1
TODO Explore the concept of behavioral boilerplate and potentially write a note about it