(Ted Harding) wrote:
Where Microsoft made their most far-reaching design error, in my view, was in emulating CP/M as their base structure for DOS, with a few bits (and not the really important ones) pinched from Unix (e.g. a hierarchical directory structure). One side-effect of this was the pestilential "" separator for directory paths, since CP/M used "/" as the options flag for commands (where Unix uses "-"), and MS kept this.
I believe that isn't 100% accurate, it was more a lack of foresight and not really on Microsoft's part. MS didn't write DOS (in fact they have never written a PC operating system from the ground up and by themselves)*
When they bought 86-DOS (originally qdos) from SCP it was already an x86 CPM clone and already had the / as options flag as per CP/M. All MS did was fix it to run on the 8088 as well as the 8086, change the copyright notice in command.com and ship to be bundled with the new IBM PC's. Version 1 did not have support for hierarchical file systems.
By version 2 they needed Hard Disk support which meant hierarchical file systems. So they did a partial rewrite of 86-DOS and then oops...we already used "/". They couldn't very well make version 2 totally incompatible with version 1 so they elected to use "" as the separator and we have been stuck with it ever since.
* In fact in recent history nobody has, the last one I can think of that was truly ground up is BeOS.