No me malinterpretes. Construir aplicaciones rudimentarias es cada vez más fácil y rápido gracias a ChatGPT y toda la variedad de asistentes inteligentes para programar.  Mientras sean rudimentarias y no te preocupen, para nada, aspectos como la seguridad, mantenibilidad, o escalabilidad de la aplicación generada, son rápidas de construir, fáciles de usar y funcionan, a veces.

Un ejemplo: ahora hay decenas de demostraciones de herramientas para traducir de “Inglés a SQL”, la mayoría simplemente llamando simplemente a OpenAI por detrás y pidiéndole la traducción. Algunas van más allá y proporcionan la lista de nombres de columnas para intentar forzar al modelo inteligente a generar una consulta SQL válida. También hemos visto todas esas demos tan visualmente impactantes para generar aplicaciones web a partir de mock-ups (una de ellas). Incluso nosotros mismos utilizamos ChatGPT para pasar de una imagen a un modelo gracias a estas nuevas capacidades visuales.

Repito, crear aplicaciones rudimentarias es cada mes más fácil. Sin embargo, crearlas confiables y maduras es tan difícil como siempre, si no más, dadas las crecientes expectativas de los clientes al ver todas las demostraciones llamativas que circulan que les hacen pensar que esto de desarrollar software es un juego de niños.

Excepto para aplicaciones exploratorias, el que funcione “a veces” no es suficiente. Y no hay un camino de transición suave desde una aplicación generada por un LLM (a partir de un prompt descriptivo) que funciona ocasionalmente hasta una aplicación equivalente en funcionalidad pero completamente determinista y confiable. Claro, a no ser que la reimplementes (casi) de cero.  Pero para eso hay que saber programar y muchos de los defensores de ChatGPT defienden su uso casi como herramienta no-code.

Como los prototipos (donde siempre había que explicar el cliente que un prototipo era fake aunque pareciera visualmente que la aplicación ya la teníamos casi lista), las aplicaciones creadas con LLMs  son para usar y tirar.

Mientras tengáis eso claro, usad los LLMs para acelerar el desarrollo de vuestros prototipos :-).

Como mínimo a día de hoy. Nadie dice que empecemos a ver agentes inteligentes especializados en aspectos como la seguridad, escalabilidad, despliegue,… que puedan colaborar para, de forma guiada, mejorar el código de toda aplicación. Pero todavía no estamos ahí.

En LinkedIn tuvimos una discusión interesante sobre este tema. A lo mejor os apetece leer los comentarios (y dar vuestra opinión).