Could Apple consider replacing traditional BSD utilities with uutils?
If you don't mind me asking, what are the specific behavior/tools/changes you'd like us to adopt?
The biggest reason our tools diverge from other systems is that their underlying implementations are in fact different. For example, "copyfile()", which has become the system core copy API, doesn't exist on Linux. In a similar vein, fts() (the directory enumeration API underneath copyfile) does exist on Linux (at least some versions), but it's generally considered a legacy API and isn't in wide use.
Critically, these differences aren't purely cosmetic. copyfile() doesn't just duplicate bytes from one file to another. Within a filesystem, it uses clonefile() to avoid unnecessary duplication and, in the even more complicated case, when copying between APFS volumes, it preserves clone state (copying an initial file, then using that file as the "source" for any related clones) to minimize directory growth crossing file systems. It also handles the complexity of determining exactly which file system attributes (and you'd be surprised at how complicated this is) should/should not be preserved, an issue which is both operating system and file system specific.
Switching to fts(), our adoption of it is tied to a very long (all the way back to Classic MacOS) preference for using "bulk" file metadata retrieval[1] instead of making individual syscalls for every file. Historically, this approach was less common on other operating systems, but it was a critical performance optimization on HFS+ and has significant benefits on HFS+.
That's an extended example from one area of the system, but the basic dynamic is common to many other system components. The core reason we maintain our own command line tools is simple: macOS doesn't work differently than other Unix systems[2].
All of that's why I asked my original question. That is, while the reasons above make it unlikely that we'll simply move to a different tool chain, it's certainly possible that we might include tools or implement options that were particularly useful. If there are specific things you'd like us to adopt, then the best approach is to file bugs explaining what you'd like us to do and why. Note that the "why" is the most important point there, not the what.
[1] Using a single syscall to retrieve the metadata about multiple files using a single syscall instead of making multiple syscalls for every file.
[2] Developers familiar with the history of Unix's divergence and evolution will note how broadly that statement could be applied.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware