¿Por qué python imprime la información de la versión a stderr?

¿Por qué Guido (o quien sea) decidió hacer una impresión de versión en python --version en stderr en lugar de en stdout? Solo por curiosidad cuál es el caso de uso es que hace que el error estándar sea más apropiado que el estándar.

Python 3.4 se modificó para dar salida a la salida stdout , que es el comportamiento esperado. Esto está listado como un error con Python aquí: http://bugs.python.org/issue18338 . Los comentarios sobre el informe de error indican que si bien stdout es la opción razonable, rompería la compatibilidad hacia atrás. Python 2.7.9 no ha cambiado en gran medida, porque mucho depende de él.

¡Espero que ayude!

Muchos progtwigs solo usarían stdout y no les importaría, pero preferiría stderr por principio. En resumen, creo que stdout es para el producto de la ejecución exitosa de un progtwig, mientras que stderr es para cualquier mensaje dirigido al usuario. Los valores calculados van a la salida stdout mientras que los errores, los seguimientos de stack, la ayuda, la versión y los mensajes de uso están destinados al usuario y deben ir a stderr .

Utilizo esta pregunta para decidir cuál de los flujos de salida es apropiado: este mensaje está dirigido al consumidor del producto principal de este progtwig (ya sea el usuario humano u otro progtwig o lo que sea) o es estrictamente para el usuario humano de este progtwig ?

Además, parece que Java usa stderr para los mensajes de versión también, por cierto: ¿Por qué ‘java -version’ va a stderr?