¿Por qué debería usarlo en lugar de optparse? ¿Son sus nuevas características las que debo conocer?
La respuesta de @ Nicholas cubre esto bien, creo, pero no la pregunta más "meta" con la que comienzas:
¿Por qué se ha creado otro módulo de análisis de línea de comandos?
Ese es el dilema número uno cuando se agrega un módulo útil a la biblioteca estándar: ¿qué hacer cuando surge una forma sustancialmente mejor, pero incompatible con versiones anteriores, de proporcionar el mismo tipo de funcionalidad?
O te quedas con la forma antigua y ciertamente superada (generalmente cuando hablamos de paquetes complicados: asyncore vs twisted, tkinter vs wx o Qt, ...) o terminas con múltiples formas incompatibles de hacer lo mismo (XML Los analizadores, en mi humilde opinión, son un ejemplo aún mejor de esto que los analizadores de línea de comandos, pero el email
paquete frente a las innumerables formas antiguas de tratar problemas similares tampoco está demasiado lejos ;-).
Puede hacer gruñidos amenazantes en los documentos sobre las viejas formas de ser "obsoletas", pero (siempre que necesite mantener la compatibilidad con versiones anteriores) realmente no puede eliminarlas sin evitar que las aplicaciones grandes e importantes pasen a versiones más recientes de Python.
(El dilema número dos, no relacionado directamente con su pregunta, se resume en el viejo dicho "la biblioteca estándar es donde los buenos paquetes van a morir" ... con lanzamientos cada año y medio más o menos, paquetes que no son muy, muy estable, no necesita lanzamientos más a menudo que eso, en realidad puede sufrir sustancialmente al estar "congelado" en la biblioteca estándar ... pero, ese es realmente un problema diferente).