Coreutils: solicitud de características rechazadas y justificaciones técnicas

Fuentes: Coreutils: rejected feature requests and technical justifications

El proyecto GNU coreutils mantiene un registro detallado de las solicitudes de nuevas funcionalidades que fueron rechazadas durante su desarrollo. Este documento técnico explica las razones técnicas y de diseño que impidieron la inclusión de estas características, priorizando la simplicidad, la eficiencia y la coherencia con las herramientas existentes del ecosistema GNU.

Entre las herramientas analizadas, se destacan las decisiones tomadas en los comandos cat, chmod, cp, cut, date y dd. Por ejemplo, en cat, se rechazaron opciones como --timestamp o --show-ends porque se consideró que awk o grep ya cubrían estas necesidades. En chmod, la propuesta de mantener el tiempo de modificación (ctime) cuando los permisos no cambian fue descartada por ser ineficiente, mientras que otras opciones como -d o +S fueron rechazadas porque el modo 'X' o la combinación con find eran suficientes.

En el caso de cp, se rechazaron características como --progress o --parallel, argumentando que herramientas como rsync ya cubren estas funciones. Para cut, se decidió no implementar soporte nativo para CSV o reordenamiento de campos, delegando estas tareas a utilidades especializadas como csvutils o awk. Finalmente, en dd, opciones como conv=offload o limitaciones de velocidad de I/O fueron rechazadas por considerarse demasiado especializadas o mejor manejadas por herramientas de alto nivel como pv o rsync.

Estas decisiones reflejan la filosofía de diseño de coreutils: evitar la complejidad innecesaria y confiar en la composición de herramientas existentes para resolver problemas específicos, garantizando así una base sólida y mantenible para el sistema operativo.