Eligiendo tu stack: los lenguajes de un vistazo
Cuando le pides a una IA que construya software, el lenguaje que elijas sigue importando — y mucho. La IA escribe el código, pero tú vives con las consecuencias: qué tan rápido lanzas, qué tan fácil es desplegar, con qué frecuencia chocas contra un muro. La buena noticia es que no necesitas dominar ninguno de estos lenguajes. Necesitas saber lo suficiente para tomar una decisión sensata y reconocer cuándo la IA te está llevando a un terreno doloroso.
Este capítulo recorre los lenguajes que vale la pena conocer, en qué es genuinamente bueno cada uno, dónde muerde, y — crucial para el vibe coding — qué tan bien lo manejan los asistentes de IA. Terminaremos con una guía sencillísima para elegir según tu objetivo.
Una nota antes de empezar: los asistentes de IA son mucho mejores en lenguajes populares con montañas de código público que en los nicho. Este no es un efecto pequeño. A menudo es el factor individual más grande en si tu proyecto avanza sin problemas. La popularidad es una característica. Cuando un lenguaje y sus frameworks principales aparecen millones de veces en repositorios públicos, la IA ha visto cada patrón común, cada error típico y cada solución idiomática. Cuando no aparecen, tú pagas esa escasez en intentos fallidos y sinsentidos con tono de seguridad.
Antes de los nombres de los lenguajes, una imagen que vale la pena tener en mente: el código que escribes nunca es lo que la máquina realmente ejecuta. Algo en el medio convierte tu texto en software en ejecución — ya sea un compilador (traduce todo por adelantado a un archivo que ejecutas) o un intérprete (lee y ejecuta línea por línea). El lenguaje que elijas determina en qué camino estás.
YOU THE MIDDLE THE MACHINE
┌────────┐ ┌──────────┐
│ source │──┬──▶ COMPILER ──▶ binary file ──────▶ │ runs on │
│ code │ │ (Go, Rust) (one file) │ CPU │
│ (text) │ │ │ │
└────────┘ └──▶ INTERPRETER ──reads line ──────▶ │ prints │
(Python, JS) by line │ output │
└──────────┘
compiled = translate first, run later
interpreted = translate while running
