So, I ask myself: Q: why depend on environment variables?
Then I remember how excited I was to learn of shell environment variables.
By setting an environment variable I could arrange for a parameter to be passed from the outside world right into the middle of a tool. Without having to modify any of the interveing levels.
No need to create argument parsing code.
In fact, in Bell Labs type shells,argument parsers are implicitly created for environmrnt variables:
VAR1=val1 VAR2=val2 program options...