일반적으로, 많은 플랫폼에서 널리 사용되고, 잘 테스트되고, 검증 된 것으로부터 벗어나고 자하는 사람은 "코드 냄새"라고하는 근본적인 문제와 "기술 부채"또는 "코드의 통제되지 않은 누적"에 대한 외적 표현입니다. 빚". GNU 아카이브는 수년 동안 상당히 많은 양의 코드 빚을 쌓아 왔으며 코드베이스가 제대로 유지 관리되지 않으면 중단 점 (레거시 코드 및 병적 레거시 코드)에 도달 할 수 있습니다.
일반적으로이를 제어하기 위해 간격을두고 리엔지니어링 및 리팩토링 프로세스를 수행합니다. 따라서 여기서 제기되는 실제 질문은 리팩토링 된 coreutils 버전이 개발되었는지 여부입니다. 물론 이것은 웨이 랜드가 X를 위해 투구되고있는 것처럼 (특별한 경우로서) 완전히 교체 될 가능성을 포함합니다. 많은 개발자들이 X 캠프에서 곧바로 나옵니다.
내 제안은 실제로 coreutils를 리팩토링하는 것입니다. 누군가해야합니다. 그리고 핵심 유틸리티를 대체하는 문제를 제기하는 사람-귀하의 아이디어는 프로젝트입니다.
이를 위해 cscout과 같은 리팩토링 엔진 또는 고급 분석 / 합성 방법 (예 : 공식적인 개념 격자)을 적용하는 모든 자동화를 활용할 수 있습니다. 그러나 심층 분석은 여전히 상대적으로 새롭고 개방 된 활발한 연구 분야이며 인공 지능으로 넘어갑니다. (로봇 소프트웨어 엔지니어)
대부분의 유틸리티에는 이미 테스트 스위트가 설치되어 있으므로 점진적인 단계적 변경 + 자동 회귀 테스트 단계를 통해 유효성 검증을 수행 할 수 있습니다. 꽤 빠르게 진행될 수 있습니다 (예 : 하루에 10 번 이상의 개정 업데이트). 소프트웨어 제품군의 어느 곳에서나 하드웨어 또는 저수준 소프트웨어 종속성이있는 경우이 프로세스가 복잡해집니다. 여러 플랫폼에서 유효성 검사가 수반되기 때문입니다. 나는 coreutils에있는 것을 많이 모른다. 하드웨어 또는 저수준 소프트웨어 계층과는 약간의 분리가 있어야합니다 (예 : coreutils가 어떤 유형을 알고있는 장소의 수)멀티 플랫폼 테스트를 위해 사용되는 에뮬레이터와 가상 머신에는 한계가 있습니다. 예를 들어, Mac OS X은 에뮬레이션 또는 VM 기능을 방해하는 방식으로 특별히 설계되었습니다.