Beaucoup d'entre vous travaillent pour de grandes entreprises qui proposent des logiciels bien connus. Je me demandais, quelle quantité de code d'origine (essentiellement, le code qui était la version "v1.0") reste dans les applications massives modernes, comme, par exemple, Firefox, Photoshop, Windows, Linux, etc.? Je préférerais vraiment une expérience de première main et des histoires de guerre réelles.
Merci d'avoir satisfait ma curiosité.
MODIFIER
Il s'avère qu'il y a un certain malentendu. Ce que je recherche est essentiellement le suivant: lorsque vous blâmez / annotez le code source, y a-t-il des parties ou même des fichiers entiers intacts depuis la version 1.0 initiale.
source-code
history
Anton Gogolev
la source
la source
Réponses:
Plus que ce que vous attendez et beaucoup plus vieux que vous ne le pensez. Même avec des «réécritures totales» et de grands refactors, de nombreux modules restent intacts.
Péter suggère que, par exemple, vous ne trouverez pas l'ancien code Netscape dans Firefox. Ce qui est faux, si vous recherchez dans le code source, vous trouverez de nombreux fichiers avec clause de non-responsabilité comme:
Par exemple, dans les en-têtes du noyau Linux, vous pouvez trouver des choses comme:
la source
Je ne sais pas combien mais l'ancien code est définitivement là mais il est lentement supprimé. Par exemple, dans Windows 2008 ou Vista, allez dans c: \ windows \ fonts en utilisant l'explorateur, faites un clic droit sur le volet gauche et choisissez "installer une nouvelle police". La boîte de dialogue qui s'affiche est à partir de Windows 3.1 jours (vérifiez la capture d'écran). Si vous voyez la même chose dans Windows 7, c'est maintenant un bien meilleur panneau de contrôle comme l'interface utilisateur.
la source
Je ne peux pas dire quel âge a le code au travail. Je ne peux que revenir au moment où il a été mis dans Subversion, et il y en a beaucoup qui remontent à ce jour.
Cependant, j'ai un ami qui a travaillé sur le code Microsoft Office. Il y a quelques années, il m'a dit qu'il en avait supprimé certains appels SaveA5World. Cet appel avait un objectif sur les anciens Macintoshes avec des processeurs M680? 0, et n'a servi à rien depuis qu'Apple a opté pour les Mac PowerPC au début des années 90.
Selon mes observations, tout système logiciel puissant sur lequel une entreprise s'appuie a été construit avec une technologie que personne ne veut vraiment utiliser.
la source
"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.
la source
Même les systèmes ostensiblement «de pointe» utilisés pour les jeux, comme iD Tech et Unreal, contiendraient encore un peu de code 1.0.
la source