Зазвичай, коли хтось просить піти від чогось, що широко використовується, добре перевіреного, перевіреного на багатьох платформах, це зовнішнє вираження основної проблеми, відомої як "запах коду" та неконтрольоване накопичення "технічного боргу" або "коду" борг ». Архів GNU накопичив протягом багатьох років досить велику кількість боргу за кодом, і коли кодова база не підтримується належним чином, вона може досягти точки розриву (застарілий код і навіть хворобливий спадковий код).
Зазвичай можна проводити процес реінжинірингу та рефакторингу з інтервалом, щоб тримати це під контролем. Отже, справжнє питання, яке тут задається, полягає в тому, чи була розроблена реконструйована версія coreutils. Звичайно, це включає можливість прямої заміни (як особливий випадок) - так само, як Вейленд розбирається на X ... багато його розробників виходять прямо з табору X.
Моя пропозиція полягає в тому, щоб насправді зайнятись та рефакторировать основні програми. Хтось повинен це зробити. І хто поставить питання про заміну coreutils - ваша ідея, ваш проект.
З цією метою скористайтеся будь-якою автоматикою, яку ви можете знайти: двигуни рефакторингу, як-от cscout, або будь-що, що застосовує більш досконалі методи аналізу / синтезу (наприклад, формальні решітки концепції). Але глибокий аналіз все ще є відносно новим і відкритим напрямком активних досліджень - і переходить у штучний інтелект. (Інженер-програмний робот.)
Більшість утиліт вже мають встановити тестові набори, тому перевірку можна здійснити за допомогою поступових покрокових змін + автоматизованих етапів тестування регресії; який може пройти досить швидко (наприклад, 10 або більше оновлень версій / день). Ускладнення цього процесу виникає, якщо в наборі програмного забезпечення є будь-які програмні та апаратні залежності низького рівня; оскільки це тягне за собою перевірку на декількох платформах. Я не знаю багато того, що є в coreutils; повинно бути якесь відокремлення в ньому від апаратних чи програмних рівнів низького рівня (наприклад, кількість місць, де coreutils знає, який типФайлова система, на якій вона ввімкнена, повинна бути мінімальною або, що краще, нульовою.) Емулятори та віртуальні машини, використовувані для тестування багатоплатформного тестування, мають обмеження. Наприклад, Mac OS X спеціально розроблений таким чином, щоб перешкоджати можливості емуляції чи перетворення VM.