"S'ils ont fait leur travail extrêmement bien dès le départ, une grande partie, sinon une petite partie."
Les langues strictes affichent ce trait. Très peu de choses ont dû changer dans les langues de Nicklaus Wirth, car elles ont été planifiées avec précision. (Cela a en fait changé récemment pour Delphi et changera davantage avec la prochaine version de déploiement universel.)
Il y a aussi un revers à cela, bien sûr. Décider que le code d'origine est assez bon, comme dans le cas de Microsoft Windows, ou de belles applications comme ACDSee, des éditeurs de texte ou les applications en ligne de commande bien connues de "l'esprit de Linux".
Même si ces applications peuvent sembler maladroites à ceux qui ne les aimaient peut-être pas en premier lieu, elles affichent un trait bien planifié ainsi qu'un ensemble de fonctionnalités bien défini; même s'ils n'ont pas de cloches et de sifflets, cela peut être préféré; ils font ce qui est sur l'étain, la compatibilité descendante est excellente et continuera probablement à bien fonctionner à l'avenir.
Photoshop aurait 90% le même code depuis 5.0, si vous optez pour le jeu de fonctionnalités. ; P le fait? Non pourquoi? Vendre des mises à jour. Vous ne pouvez pas vraiment en faire plus aujourd'hui.
L'ensemble de fonctionnalités d'un gestionnaire de fichiers, au point où il souhaite faire du FTP, du Web et du cloud, est en grande partie le même pour n'importe quelle plate-forme pendant des décennies. La seule raison pour laquelle une telle application n'est toujours pas à 1.0 est due à une mauvaise planification, à un caprice, à une envie de mise à jour - et au moins dans une faible mesure au monde qui change autour de l'application.
La réponse est que certaines gemmes restent à 1.0 ou 1.0.x parce que le développeur a décidé de l'ensemble de fonctionnalités, a terminé un programme sans bogues et ne profite pas de l'ajout sans fin de trucs et de la correction des bogues dans les trucs ajoutés, ou a déménagé pour développer plus de gemmes.
Il est peu probable que tout le reste reste près du code en 1.0. Et pourquoi ne pas réécrire l'application si vous avez une bonne idée? Vous devriez, c'est amusant de coder! :) Sauf que ce n'est pas ce qui s'est produit dans de nombreux logiciels modernes. Le changement dans un souci de changement (ventes) et non motivé par l'ensemble de fonctionnalités, et dans une moindre mesure la mise à jour pour se conformer aux plateformes changeantes, est à l'ordre du jour.
Et dans cette soupe de morceaux interactifs de logiciels constamment mis à jour, peu de bases de code échappent aux révisions. Quelques-uns continuent de rêver de fondations et de modularisation (et de ne pas sortir prématurément), mais la grande majorité est coincée dans le cycle de mise à jour-correction-mise à jour.