Hace un par de años me compré un coche de los familiares. No es un SUV por si te lo estás preguntando, aún mantengo la cordura. El vehículo en cuestión tiene lo que llaman “control de crucero adaptativo” entre otras muchas gilipolleces.
Había probado sistemas similares y no me habían convencido, tal vez no los usé suficiente, pero mi recuerdo es que no eran tan buenos. No quiero liarme mucho, voy al grano: después de 20 años de carnet ha cambiado mi forma de conducir, ahora uso el sistema constantemente, es el modo “por defecto”. Sería absurdo no hacerlo así, es muchísimo mejor que yo, reacciona mucho antes que yo; en alguna situación de emergencia cuando he ido a poner el pie en el freno el coche ya estaba frenando. En 20 años nadie en sus cabales puede pensar que este sistema, como mínimo, no vaya a ser obligatorio en autovía igual que lo es hoy el airbag o como el cinturón de seguridad en su día.
Casi exactamente los mismos años llevo programando y me pasa exactamente lo mismo con los “large language models” (LLM a partir de ahora). No tiene ningún sentido programar sin esto, no es que te vaya a enseñar a programar, de hecho aún necesitas saber, pero es mucho más rápido, más preciso y si sabes usarlo te ahorra las partes del desarrollo que son un peñazo.
Pero no solo sirve para programar, sirve para diseñar. Por ejemplo, un mensaje da información suficiente para arreglar el problema? se lo preguntas a GPT y si no sabe, raramente un desarrollador humano medio va a saber arreglarlo. Es el interfaz del API algo predecible? símplemente pásale la documentación y dile que te haga unos ejemplos. Y no quiero hablar de integraciones, más allá de los chats, en aplicaciones, sigo pensando que LLM es el mejor interfaz hombre-máquina desde el ratón o la pantalla táctil. Podría estar días poniendo ejemplos, tal vez debería montar la chatGPTCon.
Quiere decir esto que va a reemplazar a un desarrollador? lo dudo, aún tienes que saber lo que quieres hacer, saber cómo organizar, probar, tener visión general del sistema y demás. De hecho ahora mismo los LLM están aún lejos de poder ser integrados bien en sistemas puramente deterministas.
La realidad es que yo soy ya un desarrollador más bien tirando a viejo y lo estoy usando como una mejora sobre un sistema antiguo (aunque a veces iterar es caballo ganador), no soy un programador nativo LLM, ahora mismo tengo un brazo biónico, pero todavía no soy Robocop (ni Terminator). Me gustaría poder hacer un reset y volver a aprender a programar pero basándome al 100% en LLM . Estoy seguro que alguien que empiece a programar así lo va a hacer de una forma radicalmente diferente, aunque tampoco podemos olvidar que, igual que cuando usas el GPS para ir de un sitio a otro tienes que tener una idea de lo que estás haciendo, con esto pasa lo mismo, los fundamentos siempre estarán ahí y vas a necesitar saberlos.
Lo veo como tú de momento, pero he visto alguna demo que dando super poco contexto arma stacks bastante complejos y cuando le metas en concepto de agente autónomo que lea los propios logs de error, sepa googlear, y preguntarte cuando sienta indecisión... a saber dónde acabará todo esto en unos años!