Estudié varios cursos de programación durante la carrera. No había tocado el tema desde que cuando era un ñajo mis padres me apuntaron a unos cursos de BASIC que daban en el colegio, así que tenía que aprender todo básicamente desde cero.
En mi época, esto se enseñaba con Java, que es un lenguaje interpretado: los
programas que uno escribe (con extensión .java) se compilan a un lenguaje
intermedio (bytecode, con extensión .class) que luego se ejecuta mediante la
máquina virtual de Java (JVM). Las prácticas de las asignaturas consistían en un
problema que había que resolver, y para que supiéramos si íbamos encaminados,
los profesores nos daban el bytecode con la solución para que la pudiéramos
ejecutar y viésemos si la nuestra se le parecía. Como un .class está compilado,
no se puede mirar lo que hay dentro1.
Sin embargo, existen unos programas llamados
descompiladores que realizan la
operación inversa. El .java resultante no siempre es bonito, y los nombres de
las variables van de aquella manera (al menos en la época), pero se puede ver
perfectamente la estructura y la lógica. A mí me vinieron muy bien en la última
práctica de la primera asignatura de programación que tuve, que no sabía por
dónde cogerla. Descompilé la solución, miré más o menos cómo estaba hecha, pensé
para mis adentros ah, sí, claro, obvio, reescribí un poco mi código para que
funcionase y allá fuimos.
Esto funcionó hasta que en el examen cayó una pregunta sobre esa práctica, claro. Lo que parecía obvio ya no lo era. Lo que no se podía haber hecho de otra forma ahora sólo era una opción entre cientos. Apreté los dientes y puse lo que más o menos se me ocurrió sin mucha convicción.
Todo aquello me sirvió de mal ejemplo y para aprender que no es lo mismo, ni de lejos, revisar algo ya hecho que hacerlo uno mismo. Como le he leído varias veces a Iñaki: lo hice y lo entendí. La consecuencia de adquirir experiencia es que uno igual no sabe qué debe hacer, pero sí sabe lo que tiene que evitar; el universo de posibilidades se reduce drásticamente. Poder pasear por un jardín sin pisar un rastrillo ya es un plus.
La "IA", las LLMs, son un descompilador universal. Diles lo que quieres hacer y lo hacen. Productividad aparente llena de errores a costa de experiencia.
Tenía este recuerdo sin formalizar en la cabeza pero me han animado a escribirlo este hilo que le he leído a Ulises en Mastodon y una conversación que tuve con un colega el otro día. Me comentaba que para algunas tareas sencillas el LLM que usaba le iba bien, pero para cosas más complicadas había que cambiar bastantes cosas. Mi respuesta reproduce lo que ya he escrito: si lo sabes hacer, es que ya has aprendido, y si no lo sabes hacer, preguntárselo a esto va a hacer que no lo aprendas debidamente, y además vas a tener que revisar algo sobre lo que no tienes experiencia; no sabes cuántas ñapas hay ni dónde están. Es como leerte un libro en el que la mitad de lo que se cuenta es mentira, pero no sabes qué mitad.
Ya tenemos una edad como para tender que andar pastoreando a un becario poco fiable que no aprende.
Al hilo de todo esto: las aseguradoras dicen que no les vengan luego llorando (versión sin paywall):
Major insurers are seeking to exclude artificial intelligence risks from corporate policies, as companies face multibillion-dollar claims that could emerge from the fast-developing technology.
AIG, Great American and WR Berkley are among the groups that have recently sought permission from US regulators to offer policies excluding liabilities tied to businesses deploying AI tools including chatbots and agents.
The insurance industry’s reticence to provide comprehensive cover comes as companies have rushed to adopt the cutting-edge technology. This has already led to embarrassing and costly mistakes when models “hallucinate” or make things up.
One exclusion WR Berkley proposed would bar claims involving “any actual or alleged use” of AI, including any product or service sold by a company “incorporating” the technology.
El otro día nos comentaron en mi trabajo que habían comprado licencias de un sistema de "IA" para todos los desarrolladores, y que hablásemos con nuestro jefe de equipo para definir la política que íbamos a seguir y cómo lo íbamos a usar. Mi mensaje fue breve:
I'm not touching this shit with a ten-foot pole.
Me consta que no soy el único. Espero que la burbuja reviente antes de que el daño sea irreversible.
-
años más tarde esta solución se cambió por otra más funcional: una página web a la que podíamos subir nuestro código, que se compilaba y ejecutaba en remoto y devolvían las pruebas que pasaban y las que fallaban. ↩