Todos en alguna ocasión hemos utilizado el intérprete de comandos de Windows y tenemos claro que al escribir una ruta en DOS se usa la barra invertida o Backslash, «\». Un ejemplo sería «C:\Users\Azulweb\pics\Azulweb.png».
Lo curioso es que Microsoft eligió ese carácter para indicar la ruta hacia el fichero. Teniendo en cuenta que los propios desarrolladores de Microsoft querían usar la barra normal o Slash («/») que se usaba en los sistemas UNIX, ¿por qué eligieron la invertida?.
Microsoft acabó aceptando ambas
Esta historia la contó Larry Osterman en los blogs de MSDN en 2005. El post original se perdió, pero gracias a WayBack Machine de Internet Archive se recuperó.
Todo empezó con DOS 1.0, la primera versión del sistema operativo que Microsoft preparó para IBM. En aquellos tiempos solo se daba soporte a discos flexibles, y curiosamente muchas de las utilidades incluidas con DOS habían sido desarrolladas por IBM, que usaba el carácter «/» como «interruptor» o «modificador» de comando.
De esta manera si alguien quería añadir un parámetro a un comando como DIR, lo hacía con el Slash. Para obtener la ayuda de un comando, por ejemplo, uno escribía (y sigue escribiendo) «DIR /?». Ese mismo modificador se usaba también en otros sistemas operativos de la época como los DEC.
En los sistemas UNIX el modificador no era la barra, sino el guion («por ejemplo, «ls -la»), pero cuando IBM diseñó el funcionamiento de sus comandos no tuvo en cuenta el formato usado por esos sistemas UNIX.
El problema llegó cuando hubo que soportar directorios, algo que ni siquiera estaba contemplado en DOS 1.0. Con su segunda versión, DOS 2.0, ocurrió que el desarrollo tenía que alinearse con el PC/XT de IBM, que contaba con un disco duro de 10 MB.
Eso abrió una oportunidad para los desarrolladores de Microsoft, que tenían la tarea de añadir soporte para APIs de sistemas de ficheros modernos y también soporte para rutas jerárquicas.
Ahí fue cuando se toparon con pared, porque muchos de los desarrolladores de DOS usaban máquinas Xenix (el UNIX de Microsoft) para su trabajo y para la gestión del correo electrónico.
Estaban por tanto muy acostumbrados a utilizar la barra normal para esas rutas jerárquicas que sí estaban soportadas en sistemas UNIX desde hacía años, así que intentaron aplicarlas a DOS 2.0 a través de la barra normal («/»), pero no pudieron.
¿Por qué? Pues porque esa barra normal ya estaba elegida y se usaba como el citado modificador. Se pensó en usar el punto («.») que por ejemplo se usaba en sistemas DEC, pero ese carácter se usaba para separar nombres de fichero de sus extensiones. Así pues, acabaron eligiendo la Backslash («\») que después de todo era parecida a la slash.
Así fue como ese carácter se convirtió en el utilizado por esa versión de DOS y después se aplicaría al resto de versiones, llegando también a heredarse en todas las versiones de Windows, incluida la versión actual, Windows 10.
Aún así, en Microsoft los desarrolladores hicieron trampa, porque aunque la notación oficial hace uso de Backslash, permitieron que se usara la notación UNIX con Slash para indicar rutas de fichero. Puedes intentar en una consola de comandos o en el propio explorador de archivos: da igual que escribáis «C:\Users\Azulweb\pics\Azulweb.png» o «C:/Users/Azulweb/pics/Azulweb.png», y el sistema operativo convierte las barras normales a invertidas.
Al final, Osterman, también llegó a ser posible usar el modificador de Unix en el intérprete de comandos de Windows: si añadíamos la opción «SWITCHAR=» podíamos establecer si queremos elegir el carácter oficial («/») o el modificador de Unix («-«).