¡Hola, pequeña gran developer! ¿Así que estás lista para empezar tu camino en el desarrollo web? ¡Felicidades! Sin embargo, debes saber que hay algunas herramientas que necesitarás para poder combatir esos futuros bugs y problemas que te esperan ☝.
Si ya hiciste el Curso de Prework: Configuración de Entorno de Desarrollo en Windows sabrás de qué herramientas hablo, y si no, ¿qué estás esperando? 👀. Este curso es la base para todos los que desean convertirse en desarrolladores web profesionales 💪.
Una de las herramientas que instalamos en este curso, si eres usuario de Windows, fue Windows Subsystem for Linux (WSL), pero… ¿Qué es WSL exactamente y por qué tuve que instalarlo? 🤔 ¡Eso es lo que vamos a mirar en este blogpost!
¿Por qué necesito WSL?
Hoy en día el desarrollo web ha dejado de enfocarse solo en la creación de archivos HTML, CSS y JavaScript; tenemos muchas herramientas que nos permiten crear sitios web de diferentes complejidades: parsers, bundlers, transpiladores, live servers, etc. Lo que tienen en común todas ellas es que hacen uso de una sola herramienta: la terminal.
La terminal es algo de lo que no podrás escapar si planeas dedicarte al desarrollo web y es por ello que tenemos el Curso de Introducción a la Terminal y Línea de Comandos. Esto es porque ser desarrollador web implica más que solo saber programar con JavaScript, ser desarrollador web es saber entenderte con la terminal, saber instalar paquetes, librerías, automatizar tareas ¡y mucho más! 😄.
¡Pero no te preocupes!, no es algo a lo que debas tenerle miedo, todas las herramientas que tenemos como desarrolladores web fueron creadas con el objetivo de facilitarnos mucho más nuestra forma de programar. Y sí, la terminal está ahí para facilitarnos la vida, aunque parezca lo contrario 💚.
Y justamente eso es WSL, una terminal que nos facilitará la vida al momento de programar todos esos increíbles sitios web que tenemos en mente. Aunque seguramente te preguntarás, ¿por qué WSL y no CMD? Y esta es una excelente pregunta, pero para poder responderla necesitas saber algo: no todas las terminales son iguales.

La carrera de desarrollador web ofrece formación en muchas de las herramientas que trabajan con WSL.
Entendiendo los tipos de terminales
Todos nosotros conocemos a los 3 sistemas operativos principales: Windows, Linux y macOS. Pero antes de ellos había dos sistemas operativos principales: UNIX y MS-DOS. Ambos eran sistemas operativos manejados desde la terminal y eran totalmente diferentes, sus comandos, sus reglas, su sistema de archivos y demás eran distintos, siendo UNIX un sistema operativo más “dev friendly”, es decir, más cómodo para trabajar con programación de archivos.
Mientras que macOS y Linux comparten similitudes con UNIX, Windows por su parte es un descendiente de MS-DOS. ¿Alguna vez has visto que muchos desarrolladores web usan Linux? Bueno, ahora ya sabes por qué 😉.
Al día de hoy, nuestros 3 sistemas operativos principales conservan las terminales, las terminales de macOS y Linux están basadas en UNIX, mientras que la de Windows está basada en MS-DOS, ¿recuerdas cuál era la “dev-friendly”? 👀
Windows es un sistema operativo más pensado para el usuario final, mientras que Linux está más asociado con programadores. Eso no significa que no puedas programar con Windows, pero es más incómodo porque tienes que virtualizar y tener cada tecnología por separado, mirémoslo en este sentido:
- ¿Necesitas instalar Git? Entonces necesitas instalarlo desde su página oficial, y como Windows no es dev-friendly, Git tuvo que crear Git Bash para poder funcionar (que básicamente es una emulación de terminales UNIX, y esta es la misma razón por la que en Linux y macOS no existe Git Bash, porque sus terminales ya son bash 👀)
- ¿Necesitas instalar Node.js y NPM? Pues necesitas descargarlo desde su página oficial y estos traen sus propias terminales.
- ¿Quieres programar con PHP? Pues necesitas descargarte todo el paquete ya virtualizado con XAMPP o WAMPP para poder usarlo (y claro, trae sus propias terminales).
- ¿Te interesa Python? ¿Qué crees? Así es, hay que instalarlo por separado 👀.
El problema con esto es que cada tecnología trae sus propias terminales emuladas, tienes una terminal para git, otra para Node, otra para PHP, etc. En el mundo de Linux y macOS esto no pasa, debido a que sus terminales son dev-friendly, basta con instalar cada paquete y usar la misma terminal para todo. Por ejemplo:
- ¿Necesitas instalar Git? ¡Por su puesto! ¿Git Bash? ¿Qué es eso? Tu terminal es suficiente.
- ¿Quieres Node.js? ¡Claro que sí! Y de paso te instalo NPM, ah y puedes usarlo en la terminal que ya tienes, no hay problema 😉.
- ¿PHP? Ya mismo lo tienes en tu terminal.
- Oh, ¿vas a usar Python? Instalado y disponible en tu terminal 😉.
¿Qué es lo mejor de todo esto? Mientras que en Windows tienes que descargar el instalador, abrirlo y darle a “siguiente, siguiente, instalar”, en Linux y macOS basta con correr un único comando:
sudo apt install <package-name>
(Linux/Ubuntu)sudo brew install <package-name>
(macOS)
Con solo escribir eso y presionar enter ya vas a tener instalada tu herramienta y lista para usar, supercómodo ¿no lo crees? 😉.

¡WSL al rescate!
Microsoft se dio cuenta del problema que implicaba programar con Windows y si querías estar más cómodo programando debías usar Linux… ¿Pero y los videojuegos? ¡Yo no puedo jugar en Linux!
Gracias a esto surgió WSL, tienes todo el poder de la terminal de Linux, pero con las ventajas de Windows 🤠.
¡Oye! Pero yo ya estaba usando Git Bash/Cmder, ¿eso no arreglaba el problema?
¡Sí!.. parcialmente… El problema con Git Bash y Cmder es que son emulaciones de las terminales basadas en UNIX, por lo que no tendrás el 100% de las ventajas que te ofrece un sistema UNIX tal cual, ¿recuerdas que te mencioné que MS-DOS y UNIX eran sistemas operativos manejados desde la terminal y eran totalmente diferentes? Bueno, estas emulaciones, aunque tengan comandos similares, seguirán estando basadas en MS-DOS por lo que el sistema de archivos seguirá siendo el de MS-DOS.
Esta es la razón por la que algunos comandos de Linux no funcionan con Git Bash o Cmder, por ejemplo, el comando chmod
que se encarga de cambiar los permisos de un archivo o carpeta, ¡y tiene total sentido! Este comando trabaja con el sistema de archivos de Linux, pero en Windows es diferente.
Además… ¡¿por qué trabajar con una emulación si puedes tener una terminal 100% tipo UNIX?! 👀
🛑 El error que debes evitar cometer al trabajar con WSL
Es importante que sepas que WSL es un sistema operativo tal cual instalado en tu computadora Windows, sí, literalmente tienes un Linux por debajo de tu Windows 👀.
Sabiendo esto, es importante mencionarte que hay un error muy común que muchas personas comenten cuando trabajan con WSL… Este error es querer seguir trabajando con Windows. WSL te pone a disposición una carpeta llamada /mnt
desde la cual puedes acceder a Windows… ¡Pero recuerda que Linux y Windows están basados en dos sistemas operativos completamente distintos! Por eso nunca deberías trabajar dentro de esa carpeta.
¡Pero es que me gusta Windows y me gusta ver las carpetitas en el explorador de archivos!
Sí, pero recuerda que debes acostumbrarte a la terminal, no siempre vas a tener una ventana gráfica que te muestre todo, y este es uno de esos casos ☝👀. Todos tus proyectos deben vivir dentro de Linux, porque de esa forma estarás usando su sistema de archivos, sus reglas y sus comandos, en el momento en el que pones un proyecto dentro de la carpeta /mnt
estarás usando el sistema de archivos de Windows.
Esto implica un problema, porque si tratas de ejecutar comandos que trabajan con el sistema de archivos (por ejemplo chmod
) no va a funcionar, ¿por qué? Por lo que ya te expliqué en este blogpost, son mundos diferentes y son sistemas de archivos diferentes, por lo que si Linux le dice a Windows: chmod
, Windows te va a decir: “¿Qué me estás diciendo tú?” y simplemente te va a ignorar 👀. Esta es la razón por la que cuando escribes ls -al
a cualquier carpeta que esté dentro de /mnt
los archivos te salen con todos los permisos puestos, porque Linux no sabe qué permisos mostrarte, ya que son sistemas de archivos diferentes.
Ahora que sabes esto deberías empezar a mover todos tus proyectos de Windows a Linux para evitar estos problemas 😄.

¿Estás lista para WSL?
En este blogpost aprendiste las bases de los sistemas operativos, por qué son mundos diferentes y lo cómodo que es trabajar con la terminal. Ahora sabes por qué tenemos WSL y por qué muchos programadores prefieren usar Linux para programar 😉.
Usar Linux o macOS para programar es muy cómodo porque tienes todo a la mano, gracias a sus terminales puedes ejecutar programas como si fueran comandos, y esto es gracias a cómo funciona bash por debajo, que es un tema digno de otro blogpost 😄.
Recuerda, cada tecnología que usamos como desarrolladores es simplemente para hacernos la vida más fácil, y las terminales basadas en UNIX es una de esas herramientas que nos ahorrará tiempo de programación y dolores de cabeza.
¿Y tú estás lista para empezar a usar la terminal y dejar de tenerle miedo a Linux? Empieza instalando WSL en tu computadora con el Curso de Prework: Configuración de Entorno de Desarrollo en Windows, y si eres usuario de macOS aprende a instalar más herramientas que te facilitarán el trabajo con el Curso de Prework: Configuración de Entorno de Desarrollo en macOS. Recuerda que este es el inicio de tu camino como desarrolladora web profesional, así que #NuncaParesDeAprender 💪.
Curso de Prework: Configuración de Entorno de Desarrollo en Windows