"Si hicieron su trabajo extremadamente bien desde el principio, una gran parte, de lo contrario una pequeña parte".
Los idiomas estrictos muestran este rasgo. Muy poco ha tenido que cambiar en los idiomas de Nicklaus Wirth, porque fueron planeados con precisión. (Esto realmente ha cambiado últimamente para Delphi, y cambiará más con la próxima versión de implementación universal).
También hay un lado negativo de esto, por supuesto. Decidir que el código original es lo suficientemente bueno, como en el caso de Microsoft Windows, o aplicaciones encantadoras como ACDSee, editores de texto o las conocidas aplicaciones de línea de comandos "espíritu de Linux".
Aunque estas aplicaciones pueden parecer torpes para aquellos que quizás no las amaron en primer lugar, muestran un rasgo bien planificado y un conjunto de características bien definido; incluso si no tienen campanas y silbatos, eso puede ser preferible; hacen lo que está en la lata, la compatibilidad con versiones anteriores es excelente y es probable que sigan funcionando bien en el futuro.
Photoshop tendría el 90% del mismo código desde 5.0, si utiliza el conjunto de características. ; P ¿Lo hace? ¿No porque? Venta de actualizaciones. Realmente no puedes hacer más con eso hoy.
El conjunto de características de un administrador de archivos, hasta el punto en que quiere hacer FTP, web y en la nube, es en gran medida el mismo para cualquier plataforma por décadas. La única razón por la que una aplicación de este tipo todavía no está en 1.0 se debe a una mala planificación, capricho, la necesidad de actualizar, y al menos en pequeña medida, el mundo cambia alrededor de la aplicación.
La respuesta es que algunas gemas permanecen en 1.0 o 1.0.x porque el desarrollador ha decidido sobre el conjunto de características, ha completado un programa libre de errores y no se beneficia al agregar cosas sin parar y corregir los errores en las cosas agregadas, o se ha movido para desarrollar más gemas.
Es poco probable que todo lo demás se quede cerca del código en 1.0. ¿Y por qué no debería reescribir la aplicación si tiene una gran idea? ¡Deberías, es divertido codificar! :) Excepto que eso no es lo que ha sucedido en muchos productos de software modernos. El cambio por el bien del cambio (ventas) y no motivado por el conjunto de características, y en menor medida la actualización para cumplir con las plataformas cambiantes, está a la orden del día.
Y en esta sopa de piezas interactivas de actualización constante de software, pocas bases de código escapan a las revisiones. Algunos aún mantienen el sueño de las bases y la modularización (y no la liberación prematura), pero la gran mayoría está atrapada en el ciclo de lanzamiento-reparación-actualización.