Biasanya, ketika seseorang meminta untuk menjauh dari sesuatu yang digunakan secara luas, diuji dengan baik, diverifikasi pada banyak platform, itu merupakan ekspresi luar dari masalah mendasar yang dikenal sebagai "bau kode" dan akumulasi "utang teknis" atau "kode yang tidak terkendali" hutang". Arsip GNU telah membangun jumlah hutang kode yang cukup besar selama bertahun-tahun, dan ketika basis kode tidak dipelihara dengan baik, ia dapat mencapai titik puncak (kode warisan, dan bahkan kode warisan yang tidak wajar).
Biasanya, seseorang akan melakukan proses rekayasa ulang dan refactoring pada interval untuk menjaga ini tetap terkendali. Jadi, pertanyaan sebenarnya yang diajukan di sini adalah apakah versi inti dari refutor telah dikembangkan. Ini, tentu saja, termasuk kemungkinan penggantian langsung (sebagai kasus khusus) - seperti Wayland sedang dipromosikan untuk X ... banyak pengembangnya yang langsung keluar dari kamp X.
Saran saya adalah untuk benar-benar masuk dan refactor coreutils. Seseorang harus melakukannya. Dan siapa pun yang mengangkat masalah mengganti coreutils - ide Anda proyek Anda.
Untuk tujuan ini, manfaatkan otomatisasi apa pun yang dapat Anda temukan: mesin refactoring, seperti cscout, atau apa pun yang menerapkan metode analisis / sintesis yang lebih maju (misalnya, kisi konsep formal). Tetapi analisis mendalam masih merupakan bidang penelitian aktif yang relatif baru dan terbuka - dan beralih ke Intelegensi Buatan. (Seorang insinyur perangkat lunak robot.)
Sebagian besar utilitas seharusnya sudah memiliki ruang uji di tempat, sehingga validasi dapat dilakukan dengan perubahan langkah-progresif + langkah-langkah pengujian regresi otomatis; yang bisa berjalan sangat cepat (mis. 10 atau lebih pembaruan revisi / hari). Kerumitan untuk proses ini terjadi jika ada perangkat keras atau ketergantungan perangkat lunak tingkat rendah di mana saja dalam rangkaian perangkat lunak; karena itu memerlukan validasi pada berbagai platform. Saya tidak tahu banyak tentang itu di coreutils; harus ada semacam pemisahan di dalamnya dari perangkat keras atau lapisan perangkat lunak tingkat rendah (misalnya jumlah tempat di mana coreutils tahu jenis apasistem file yang dihidupkan harus minimal atau, lebih baik, nol.) Emulator dan mesin virtual, digunakan untuk tujuan melakukan pengujian multi-platform, memiliki keterbatasan. Misalnya, Mac OS X dirancang khusus dengan cara menghalangi kemampuan untuk meniru atau VM itu.