Zwykle, gdy ktoś chce uciec od czegoś, co jest szeroko stosowane, dobrze przetestowane, zweryfikowane na wielu platformach, jest to zewnętrzny wyraz podstawowego problemu zwanego „zapachem kodu” i niekontrolowanego narastania „długu technicznego” lub „kodu” dług". Archiwum GNU narosło przez lata dość dużą liczbę długów kodu, a gdy baza kodów nie jest odpowiednio utrzymywana, może osiągnąć punkt krytyczny (starszy kod, a nawet chorobliwy starszy kod).
Zwykle w pewnych odstępach czasu przeprowadzano by proces przebudowy i refaktoryzacji, aby utrzymać to pod kontrolą. Tak więc, prawdziwe pytanie, które tu postawiono, dotyczy tego, czy opracowano przebudowaną wersję coreutils. Obejmuje to oczywiście możliwość bezpośredniej wymiany (w specjalnym przypadku) - podobnie jak Wayland jest przeznaczony dla X ... wielu jego programistów wychodzących prosto z obozu X.
Moją propozycją jest faktyczne wejście i refaktoryzacja coreutils. Ktoś musi to zrobić. I ktokolwiek podnosi kwestię zastąpienia Coreutils - Twój pomysł Twój projekt.
W tym celu wykorzystaj dostępną automatyzację: silniki refaktoryzujące, takie jak cscout, lub wszystko, co stosuje bardziej zaawansowane metody analizy / syntezy (np. Formalne sieci koncepcji). Ale dogłębna analiza jest wciąż stosunkowo nowym i otwartym obszarem aktywnych badań - i przenosi się na sztuczną inteligencję. (Inżynier oprogramowania robotów.)
Większość programów narzędziowych powinna już mieć zainstalowane zestawy testowe, więc sprawdzanie poprawności można przeprowadzić za pomocą stopniowej zmiany krokowej + etapów automatycznego testowania regresji; które mogą iść dość szybko (np. 10 lub więcej aktualizacji wersji dziennie). Komplikacja tego procesu występuje, jeśli gdziekolwiek w pakiecie oprogramowania występują zależności sprzętowe lub programowe niskiego poziomu; ponieważ wymaga to weryfikacji na wielu platformach. Niewiele wiem o tym w coreutils; powinno być w nim coś w rodzaju separacji od warstw sprzętowych lub oprogramowania niskiego poziomu (np. liczba miejsc, w których coreutils wie, jaki typsystemu plików, na którym jest włączony, powinien być minimalny, a najlepiej zerowy.) Emulatory i maszyny wirtualne, przeznaczone do testowania na wielu platformach, mają ograniczenia. Na przykład Mac OS X został specjalnie zaprojektowany w taki sposób, aby utrudniać emulację lub VM.