Skip to content

Cómo se siente aprender JavaScript en 2026

· 5 min de lectura

tags: dev-tools, ai-agents

Hace diez años, este mismo mes, Jose Aguinaga publicó How it feels to learn JavaScript in 2016. Era un diálogo: alguien que llevaba un tiempo lejos del frontend le pide ayuda a un veterano para armar una página simple que muestre datos de un servidor, y termina enterrado bajo React, JSX, Babel, Webpack, npm, Bower, TypeScript, Flow, Redux y dos docenas de motores de templates. Termina con el recién llegado rindiéndose y volviendo al backend, y el veterano respondiendo con una sola línea: "¿Escuchaste hablar de Python 3?"

Lo leí cuando salió y me quedó grabado. Era gracioso porque todos los nombres eran reales. Diez años después, quería saber cómo suena la misma conversación ahora que tanto código lo escribe un agente. Acá está, con disculpas y agradecimiento al original.

Cómo se siente aprender JavaScript en 2026

Che, tengo un proyecto web nuevo, pero la verdad hace unos años que no escribo código. Necesito una página simple que muestre unos datos de un servidor. ¿Qué uso?

— Nada. Pedíselo al agente.

¿El agente?

— Un agente de código con IA. Le describís la página y te la escribe. Claude Code, Codex, Cursor, Copilot, Gemini CLI. Elegí uno.

Bueno, pero ¿en qué la escribe? ¿React?

— Probablemente. Next.js, lo más seguro. No te tiene que importar mucho.

¿No necesito saber React?

— Necesitás saber suficiente React para leer lo que escribió. No es lo mismo.

Dale. ¿Entonces le digo "haceme una página" y listo?

— No. Primero escribís un AGENTS.md. O un CLAUDE.md, según el agente. Es un archivo donde explicás tu proyecto, tus convenciones y cómo se corren los tests.

Todavía no tengo proyecto. Por eso te pido una página.

— Entonces dejá que el agente escriba el AGENTS.md también. Y revisalo, porque ese archivo entra en cada conversación.

¿En cada conversación? ¿No sale caro?

— Está cacheado. Prompt caching. Mientras no toques el principio del contexto, el proveedor te cobra una fracción.

Eh... bueno. ¿Qué modelo?

— Depende de la semana. Sale un modelo de frontera nuevo más o menos cada mes, cada uno en versión grande y versión rápida, y cada laboratorio tiene un benchmark donde va ganando.

¿Cuál va ganando?

— Todos. Según sus propios benchmarks.

Entendido. Los datos vienen de un servidor. ¿Cómo sabe el agente de mi servidor?

— Lo conectás con MCP, el Model Context Protocol. Es un estándar para darle herramientas a los modelos: tu base de datos, tu API, tu navegador, tu Slack.

¿MCP es una librería?

— Es un protocolo. Hay servidores. Miles. Algunos son oficiales y otros los escribió alguien el fin de semana pasado, y esos conviene leerlos antes de darles tus credenciales.

Pará, ¿le doy mis credenciales?

— Acotadas. Con OAuth. Y el agente te pide permiso antes de correr un comando, salvo que actives el modo automático.

¿Qué es el modo automático?

— El modo en el que no pregunta. Todos terminan ahí.

¿Y si necesito que siga algo puntual, como nuestras reglas de diseño?

— Escribís una skill. Es un archivo Markdown con instrucciones que el agente carga cuando hace falta. O un slash command. O un hook, si querés que algo pase todas las veces. O un subagente, si la tarea es lo bastante grande.

¿Cuál es la diferencia entre una skill y un prompt?

— Una skill es un prompt en una carpeta.

...

— Con una descripción arriba. La descripción importa.

Yo solo quiero mostrar unos datos en una página.

— Y los vas a mostrar. Ya lo hizo mientras hablábamos. Mirá, un pull request.

Toca 47 archivos.

— Agregó tests. Son muy buenos con los tests. También un Dockerfile, una GitHub Action, un modo oscuro y un README con emojis.

No pedí modo oscuro.

— Nadie lo pide. Te toca igual.

¿Tengo que revisar todo esto?

— Alguien tiene que hacerlo. Podés pedirle a otro agente que lo revise. O al mismo agente con un contexto limpio.

Un agente revisando a un agente.

— Y vos revisando la revisión. Después corre el CI, que tarda más cada semana porque los agentes no paran de escribir tests, así que vas a querer una merge queue.

¿Por lo menos funciona?

— Compila y pasan los tests. Si funciona, lo chequeás en un navegador. O le pedís a un agente con navegador que lo chequee.

¿Y cómo sé que el agente no hizo que solo parezca que funciona?

— Evals.

¿Qué son los evals?

— Tests para las cosas que no son deterministas. Juntás un set de casos, corrés el modelo contra ellos y le ponés nota a las respuestas. A veces la nota la pone otro modelo.

¿Y quién controla a ese modelo?

— Siguiente pregunta.

Mirá, en 2016 tuve que aprender Webpack. ¿Ahora tengo que aprender Webpack?

— No. Ya nadie aprende Webpack. El agente sabe Webpack. También sabe Vite, Turbopack y Rspack, y va a elegir uno sin avisarte.

¿Y entonces qué tengo que aprender?

— A decir exactamente lo que querés. A leer código que no escribiste. A darte cuenta cuando algo está mal con total seguridad. A saber cuándo tirar un pull request entero y empezar de nuevo. Y a no pasarte del presupuesto de tokens.

Eso suena más difícil que Webpack.

— Lo es. Pero nadie lo pone en el CV.

¿Sabés qué? Lo escribo yo. Un archivo HTML y un fetch().

— Buenísima idea. Abrí tu editor.

Listo.

— ¿Ves ese texto gris que acaba de aparecer?

Sí.

— Apretá Tab.

Qué cambió y qué no

El chiste en 2016 era que una página simple quedaba enterrada bajo las herramientas que tenías que aprender antes de escribir una sola línea. Ese costo lo pagabas por adelantado, y el stack cambiaba otra vez antes de que terminaras de pagarlo.

Ese costo ya casi no existe. No conozco a nadie que siga configurando un bundler a mano, y no lo extraño. Pero el recambio no frenó. Subió una capa: modelos, agentes, protocolos, archivos de contexto, skills. La diferencia es que esta capa trata de cómo das instrucciones y cómo verificás, no de cómo construís. Los nombres cambian todos los meses, pero las preguntas de fondo son las mismas que siempre se hizo un buen líder técnico: ¿qué queremos exactamente, y cómo sabemos que está bien?

El trabajo también se movió. En Selenios mucho de nuestro código ahora lo escribimos junto con agentes, y el costo no apareció en tipear. Apareció en las revisiones y en el CI, que es la historia de por qué pasamos a una merge queue. La página simple aparece en minutos. Decidir si está bien, si es segura y si vale la pena quedársela lleva el mismo criterio de siempre.

Si estás empezando hoy, mi consejo es aburrido: aprendé suficiente HTML, HTTP y JavaScript para leer lo que escribe el agente y darte cuenta cuando se equivoca. El instinto del recién llegado al final del diálogo, un archivo HTML y un fetch(), era correcto en 2016 y sigue siéndolo. El agente te lleva más rápido. No decide por vos.

Y si alguien vuelve a escribir esto en 2036, apuesto a que el recién llegado va a seguir queriendo nada más que una página que muestre datos de un servidor.