"Wenn sie ihre Arbeit von Anfang an überaus gut gemacht haben, ein großer Teil, ansonsten ein kleiner Teil."
Strenge Sprachen weisen dieses Merkmal auf. An den Sprachen von Nicklaus Wirth musste nur sehr wenig geändert werden, da sie präzise geplant wurden. (Dies hat sich in letzter Zeit für Delphi tatsächlich geändert und wird sich mit der kommenden Universal Deploy-Version noch mehr ändern.)
Das hat natürlich auch eine Kehrseite. Zu entscheiden, ob der ursprüngliche Code gut genug ist, wie im Fall von Microsoft Windows, oder umwerfenden Anwendungen wie ACDSee, Texteditoren oder den bekannten "Spirit of Linux" -Befehlszeilenanwendungen.
Auch wenn diese Anwendungen für diejenigen, die sie vielleicht gar nicht geliebt haben, klobig erscheinen, weisen sie ein gut geplantes Merkmal sowie ein genau definiertes Feature-Set auf. Auch wenn sie keine Schnickschnack haben, ist das vielleicht vorzuziehen. Sie tun, was auf dem Zinn steht, die Abwärtskompatibilität ist großartig und wird wahrscheinlich auch in Zukunft gut funktionieren.
Photoshop hätte 90% den gleichen Code seit 5.0, wenn Sie das Featureset verwenden würden. ; P Tut es? Nein, warum? Aktualisierungen verkaufen. Mehr kann man heute nicht damit machen.
Der Funktionsumfang eines Dateimanagers ist bis zu dem Punkt, an dem FTP, Web und Cloud ausgeführt werden sollen, für jede Plattform für Jahrzehnte weitgehend identisch. Der einzige Grund, warum eine solche Anwendung immer noch nicht auf 1.0 steht, ist eine schlechte Planung, eine Laune, der Drang zu aktualisieren - und zumindest in geringem Maße, dass sich die Welt um die Anwendung herum verändert.
Die Antwort ist, dass einige Edelsteine bei 1.0 oder 1.0.x bleiben, weil der Entwickler sich für das Feature-Set entschieden hat, ein fehlerfreies Programm fertiggestellt hat und entweder nicht davon profitiert, endlos Dinge hinzuzufügen und die Fehler in den hinzugefügten Dingen zu beheben, oder umgezogen ist auf mehr Edelsteine zu entwickeln.
Es ist unwahrscheinlich, dass alles andere in der Nähe des Codes in 1.0 bleibt. Und warum sollten Sie die Anwendung nicht umschreiben, wenn Sie eine großartige Idee haben? Du solltest, es macht Spaß zu programmieren! :) Abgesehen davon, dass dies in vielen modernen Softwareprodukten nicht der Fall ist. Änderungen aus Gründen der Änderung (des Verkaufs) und nicht durch Featuresets motiviert, und in geringerem Umfang Aktualisierungen, um sie an sich ändernde Plattformen anzupassen, sind an der Tagesordnung.
Und in dieser Suppe interagierender Teile einer ständig aktualisierten Software entgehen nur wenige Codebasen Revisionen. Einige halten sich immer noch an den Traum von Grundlagen und Modularisierung (und nicht vorzeitigem Release), aber die große Mehrheit bleibt im Release-Fix-Update-Zyklus stecken.