I have never thought that UNIX approach is the "best" in a universal sense.
But when compared to how large, slow, complicated and opaque the "alternatives" are, UNIX is the clear choice for me.
I can modify and recompile UNIX to meet my own ends. That is all but impossible if I chose an alternative such as Windows.
For example, if I do not want ls to have 30+ options, I can trim it down to just a few options and recompile.
There are other utilities besides ls for viewing file information, e.g., BSD stat(1) or mtree -cp. The later displays mode information in octal which is something ls, despite its 30+ options, does not do.
Or I can write my own simple utility. I am given the full UNIX source code. Where is the source code for Windows?
Personally I keep my filenames short and never use spaces, so I sometimes use the shell's echo builtin and tr(1) to get a quick list of files.
echo * |tr '\040' '\012'
If there were non-UNIX alteratives that were small, simple and transparent, perhaps I might not be using UNIX.
Because I have become very comfortable with UNIX, any alternatives that others suggest have to be comparable with UNIX on size and simplicity before I will take them seriously.
Currently, I use a kernel source tree that compresses to under 40MB; I can compile kernels with about 200MB of RAM and fully loaded kernels are about 17MB. Userland utilities are usually around 5MB as I prefer to put them in the kernel's embedded filesystem. I do not like to rely on disks. My "IDE" is the same system I am compiling. There is no GUI overhead, everything can be done in textmode. The importance of the preceding two sentences cannot be understated.
I am always willing to consider non-UNIX alternatives that can offer the same or better flexibility, size constraints and simplicity.
But after decades of being open to alternatives, I am still not aware of any.
Why do you need the source code to write a utility when all you need is an API? I've written software for Linux and Solaris but never had to look at the source code, so I imagine it's the same for Windows.
"... you need the source code to write a utility..."
Where in the comment is this statement?
Personally the primary reasons I would want the source code for the kernel and utilities would be 1. to assess its quality and, assuming the quality meets my standards, 2. to modify it to meet my own ends. In my case, the less I have to write things from scratch the better.
> Or I can write my own simple utility. I am given the full UNIX source code. Where is the source code for Windows?
I agree with your reasons, it is useful to have the source code. Just saying tat in the many, many years I've been writing software that's deployed on Linux, I've never had to look at it.
But when compared to how large, slow, complicated and opaque the "alternatives" are, UNIX is the clear choice for me.
I can modify and recompile UNIX to meet my own ends. That is all but impossible if I chose an alternative such as Windows.
For example, if I do not want ls to have 30+ options, I can trim it down to just a few options and recompile.
There are other utilities besides ls for viewing file information, e.g., BSD stat(1) or mtree -cp. The later displays mode information in octal which is something ls, despite its 30+ options, does not do.
Or I can write my own simple utility. I am given the full UNIX source code. Where is the source code for Windows?
Personally I keep my filenames short and never use spaces, so I sometimes use the shell's echo builtin and tr(1) to get a quick list of files.
If there were non-UNIX alteratives that were small, simple and transparent, perhaps I might not be using UNIX.Because I have become very comfortable with UNIX, any alternatives that others suggest have to be comparable with UNIX on size and simplicity before I will take them seriously.
Currently, I use a kernel source tree that compresses to under 40MB; I can compile kernels with about 200MB of RAM and fully loaded kernels are about 17MB. Userland utilities are usually around 5MB as I prefer to put them in the kernel's embedded filesystem. I do not like to rely on disks. My "IDE" is the same system I am compiling. There is no GUI overhead, everything can be done in textmode. The importance of the preceding two sentences cannot be understated.
I am always willing to consider non-UNIX alternatives that can offer the same or better flexibility, size constraints and simplicity.
But after decades of being open to alternatives, I am still not aware of any.