Back to Shell

Ilustración de tres Jorges a una mesa: el de niño con un portátil mostrando 'starting learning...' en el terminal, el adulto de pie con gafas de VR señalando un diagrama en la pared que muestra la evolución triciclo → patinete cohete → andador, y el de mayor con un portátil mostrando 'back to the basics...' en el terminal.

Tabla de contenidos


Mi Problema 🤔

Empecé a programar cuando la shell no era una opción, era el sitio. No había ratón, no había ventanas. Solo un cursor parpadeando, esperando un comando. Aprendí a pensar en texto: entrada, salida, pipe, redirección.

Después llegó el giro. La industria decidió que la productividad tenía cara de ventana. Cada disciplina pasó a tener su propio programa, con su interfaz y su curva de aprendizaje:

  • Bases de datos — su aplicación con su panel y sus pestañas
  • Control de versiones — otra ventana, otra forma de ver lo mismo
  • Despliegues — otro dashboard, otra cuenta, otros botones
  • Observabilidad — otro panel, otros gráficos, otra suscripción

La shell quedó relegada a “eso que usan los que saben mucho” y a las tareas que las interfaces gráficas todavía no habían conquistado.

Yo seguí la corriente. Fui acumulando aplicaciones, dashboards y ventanas hasta que dejé de visitar la shell. La fui desempolvando cada vez con menos frecuencia, hasta que solo aparecía cuando no quedaba más remedio.

El problema llegó al incorporar la IA a mi flujo de trabajo. No como buscador ni como generador de fragmentos, sino como agente que actúa sobre mi entorno. Y ese agente no tiene ratón. No abre ventanas. Trabaja exactamente como yo al principio: con texto, con comandos, con la shell.

La pregunta que me quedó flotando fue incómoda: ¿había pasado años aprendiendo interfaces gráficas para hacer lo mismo que ya hacía al empezar, pero con más pasos por el medio?


Mi Solución 🧩

La solución no fue una ruptura. No cerré ventanas de golpe ni escribí un manifiesto anti-interfaz. Solo dejé de resistirme a volver a la shell cuando el trabajo me llevaba ahí de forma natural.

El cambio empezó observando. Cuando un agente necesita inspeccionar algo, no busca una vista bonita — escribe un comando. Cuando quiere ver logs, los lee con un pipe. No le interesa qué aplicación prefiero yo. Solo le interesa el resultado.

Mi primer instinto fue corregirlo: “Espera, para eso tengo una herramienta gráfica.” Pero al detenerme entendí que estaba metiendo fricción donde no había ninguna. El agente sabía qué ejecutar. Yo sabía leer el output. La interfaz no aportaba nada — solo añadía pasos: abrir, conectar, navegar, encontrar.

Así que empecé a hacer lo mismo por mi cuenta. Donde antes abría una ventana, ahora abro una shell:

  • Revisar un estado — un comando directo en lugar de un panel que cargar
  • Transformar datos — encadeno operaciones en lugar de exportar, abrir y volver a guardar
  • Automatizar una tarea — la escribo una vez y la reutilizo en cualquier sitio
  • Reproducir un flujo — copio y pego texto en lugar de explicar clics

No por nostalgia, sino porque es más rápido y más composable.

Ese fue el verdadero giro mental: los comandos se componen de un modo que las interfaces gráficas nunca podrán igualar. Una ventana me ofrece lo que su diseñador imaginó que necesitaría. La shell me da lo que yo decido que necesito.

Y hubo algo que me sorprendió: el conocimiento seguía intacto. No había que estudiar otra vez. Solo había que desempolvar.


Mi Resultado 🎯

El resultado no ha sido una ruptura con las interfaces gráficas. Sigo abriendo ventanas cuando aportan algo que el texto no puede ofrecer. Pero la shell ha vuelto a ocupar el centro de gravedad de mi flujo, en lugar de ser el último recurso.

Lo que cambió concretamente:

  • Velocidad — un comando es casi siempre más rápido que navegar hasta la opción equivalente en una GUI
  • Composabilidad — puedo encadenar operaciones que ninguna ventana contempla en combinación
  • Consistencia con la IA — hablamos el mismo idioma; no hay traducción entre lo que el agente ejecuta y lo que yo veo
  • Portabilidad — un comando funciona igual en local, en un servidor y en CI

Pero lo que más me llamó la atención fue el aprendizaje que no tuve que hacer. Daba por hecho que volver a la shell exigiría tiempo y práctica. Ese tiempo ya estaba invertido décadas atrás: los comandos, los pipes, la lógica de redirección — todo seguía ahí, esperando una excusa para volver a usarse.

La IA no me enseñó a usar la shell. Me recordó que ya sabía hacerlo.

El ciclo que empezó con un triciclo, pasó por el cohete de las interfaces gráficas y vuelve a los fundamentos no es un retroceso. Es un círculo que cierra mejor de lo que abrió. A veces el futuro del desarrollo no consiste en aprender algo nuevo, sino en redescubrir lo que ya sabíamos hacer cuando empezamos.

Keep coding, keep running 🏃‍♂️