At Fri, 20 Nov 2009 15:51:19 -0500, Eli Barzilay wrote: > Look, the story with environment variables vs command-line flags is > esentially the same one as with keyword arguments vs parameters.
I completely agree. But how does this lead you to the conclusion that environment variables are bad? At the Scheme level, we always prefer to use function arguments instead of parameters. But threading some configuration information everywhere (such as the current output port) is a huge pain. So we have parameters, and various functions accept an optional argument whose default value is drawn from a parameter. Similarly, the -X and -S arguments were not added to `mzscheme' because environment variables are an inherently bad idea. They were added because it's better to supply those configurations directly when practical. But the environment variables stayed, because it's not always practical to thread a command-line argument through a chain of scripts. > Another problem with environment variables is that they get passed on > in strange ways. I've seen people hopelessly confused on Windows, > since changing the environment is done in an awkward way. The same with parameters, but we'd have a hard time getting by without them. It looks to me like a PLTADDONDIR environment variable is appropriate, and `mzscheme' should also accept a command-line flag to override it. _________________________________________________ For list-related administrative tasks: http://list.cs.brown.edu/mailman/listinfo/plt-dev