# Why is there no \provideenvironment?

LaTeX2e provides a \providecommand but there is no \provideenvironment which defines an environment only if it (or a macro with the same name) was not defined before. Is there a specific reason why it is missing?

-

Now \providecommand was made available because you often have simple user commands where "better" implementations might be provided by a package and then you do not want your code to overwrite things. Environments are typically more elaborate and thus less likely to be of that nature and we simply didn't saw the big benefit of providing the same mechanism there and wasting space.
Wrong judgement? Perhaps. On the other hand, I personally never felt that \providecommand, except in very restricted circumstances, is really something you should use as it is better to know if something overwrites something else and then make a concious decision which version to use.
I personally only really use \providecommand when I might be passing input from other sources that should override a default definition. Such as pdflatex "\def\FLAG{T}\input{myfile}", in which myfile.tex has a flag defined with some default like \providecommand\FLAG{F} that can be redefined as desired. –  Will Robertson May 21 '12 at 8:04