Wenn jemand von etwas Abstand nehmen möchte, das auf vielen Plattformen häufig verwendet, getestet und verifiziert wird, ist dies in der Regel ein äußerer Ausdruck eines zugrunde liegenden Problems, das als "Codegeruch" bezeichnet wird, und der unkontrollierten Anhäufung von "technischer Verschuldung" oder "Code" Schuld". Das GNU-Archiv hatte im Laufe der Jahre eine ziemlich große Menge an Code-Schulden aufgebaut, und wenn eine Codebasis nicht richtig gepflegt wird, kann sie einen Bruchpunkt erreichen (Legacy-Code und sogar krankhafter Legacy-Code).
Normalerweise würde man in regelmäßigen Abständen ein Re-Engineering und Refactoring durchführen, um dies unter Kontrolle zu halten. Die eigentliche Frage, die hier gestellt wird, ist, ob eine überarbeitete Version von coreutils entwickelt wurde. Dies beinhaltet natürlich die Möglichkeit eines direkten Ersatzes (als Sonderfall) - ähnlich wie Wayland für X aufgestellt wird ... viele seiner Entwickler kommen direkt aus dem X-Camp.
Mein Vorschlag ist, tatsächlich Coreutils zu refaktorieren. Jemand muss es tun. Und wer auch immer das Problem des Austauschs von coreutils aufwirft - Ihre Idee, Ihr Projekt.
Nutzen Sie zu diesem Zweck die Automatisierung, die Sie finden können: Refactoring-Engines wie cscout oder alles, was fortgeschrittenere Analyse- / Synthesemethoden (z. B. formale Konzeptgitter) anwendet. Die Tiefenanalyse ist jedoch noch ein relativ neues und offenes Gebiet der aktiven Forschung - und geht in die künstliche Intelligenz über. (Ein Robotersoftware-Ingenieur.)
Die meisten Dienstprogramme sollten bereits über Testsuiten verfügen, sodass die Validierung mit schrittweisen Änderungen und automatisierten Regressionstests erfolgen kann. Das kann ziemlich schnell gehen (zB 10 oder mehr Revisionsupdates / Tag). Eine Komplikation dieses Vorgangs tritt auf, wenn irgendwo in der Softwaresuite Hardware- oder Softwareabhängigkeiten auf niedriger Ebene vorhanden sind. da dies die Validierung auf mehreren Plattformen mit sich bringt. Ich weiß nicht viel darüber in coreutils; Es sollte eine gewisse Trennung von der Hardware- oder der Low-Level-Software-Schicht bestehen (z. B. die Anzahl der Stellen, an denen coreutils weiß, welcher Typ vorliegt)Das Dateisystem, auf dem es sich befindet, sollte mindestens oder besser null sein.) Für Emulatoren und virtuelle Maschinen, die zum Testen auf mehreren Plattformen verwendet werden, gelten Einschränkungen. Zum Beispiel wurde Mac OS X speziell dafür entwickelt, die Emulation oder VM-Fähigkeit zu beeinträchtigen.