Programming with Configuration Contexts
vilkeliskis.com
vilkeliskis.com
There is no excuse for added complexity and this is a bad one.
Because the ops team does not recompile everything regularly, and sometimes needs to run a service with different config in an ad-hoc manner.
Also, aiming the code at being configured when being run yields better separation between code configuring the thing and code that runs it. If you can't see what profit comes from keeping configuration separate from code, I'm affraid you won't be able to gather configuration in one place easy to change.
"Context" means nothing, because you can't flip a bit without it being in some kind of context. What is an object? It's a piece of context which holds named properties.
(Particularly, when you're parsing a "context free" grammar, there is shitloads of context just to ironically spite you.)