ChatGPT de OpenAI: Mejora con Codex

La última innovación de OpenAI, el agente de IA Codex, introduce un enfoque novedoso a la codificación: un entorno de “vibe-coding” impulsado por una interfaz similar a ChatGPT. Si bien el concepto puede parecer inicialmente artificioso, las capacidades del nuevo agente Codex son notablemente impresionantes.

OpenAI ha etiquetado Codex como una vista previa de investigación, lo que indica que todavía está en desarrollo activo. Actualmente, está accesible para los suscriptores de ChatGPT Pro, Enterprise y Team-tier, con planes para extender la disponibilidad a los usuarios Plus y Edu en un futuro próximo.

Según el anuncio de OpenAI, el nombre Codex se ha asociado con una herramienta de codificación en evolución desde 2021. En esta discusión, “Codex” se refiere a la versión recién anunciada.

Codex reside en los servidores de OpenAI y se integra con los repositorios de GitHub. Las demostraciones sugieren que Codex funciona como un programador adicional dentro de un equipo.

Se le puede indicar que resuelva una serie de errores y ejecute la tarea en consecuencia. También busca la aprobación para las modificaciones del código, aunque parece capaz de modificar el código de forma autónoma.

Codex puede analizar y modificar el código, identificar problemas específicos, señalar áreas de mejora y realizar otras tareas de codificación y mantenimiento. Cada tarea inicia un nuevo entorno virtual, lo que permite a la IA gestionar todo, desde el concepto y el diseño hasta las pruebas unitarias.

Un Cambio de Paradigma en la Codificación

Esto significa un verdadero cambio en el paradigma de la codificación. La asistencia de codificación por IA anterior involucraba principalmente funciones de autocompletado, generando automáticamente líneas o bloques de código basados en el código existente.

La tecnología ha progresado hasta el punto en que la IA puede escribir o depurar pequeños segmentos de código. Este es el aspecto que me ha interesado particularmente con respecto a las pruebas de programación de ZDNET.

Otro papel para la IA es el análisis del sistema general. Recientemente, exploré una nueva herramienta de Deep Research que puede deconstruir bases de código enteras y proporcionar revisiones de código y recomendaciones.

Codex ahora llega a un punto en el que tareas de programación completas pueden ser confiadas a la IA en la nube, similar a delegar tareas a otros programadores en un equipo o programadores junior que aprenden el mantenimiento del código.

OpenAI describe esto como “Desarrollo de software nativo de Agent, donde la IA no solo lo ayuda mientras trabaja, sino que asume el trabajo de forma independiente”.

El video de lanzamiento demostró la capacidad de Codex para gestionar múltiples tareas simultáneamente, cada una operando en un entorno virtual separado y aislado.

Los programadores asignaron tareas al agente, que luego ejecutó el trabajo de forma independiente. Al finalizar, el agente proporcionó los resultados de las pruebas y sugirió cambios en el código.

La demostración presentó a Codex realizando correcciones de errores, escaneando errores tipográficos, ofreciendo sugerencias de tareas y realizando refactorización en todo el proyecto (modificando el código para mejorar la estructura sin cambiar el comportamiento).

Los desarrolladores y diseñadores senior están familiarizados con la articulación de requisitos y la revisión del trabajo de otros. El uso de Codex no introducirá cambios significativos para ellos. Sin embargo, los desarrolladores que carecen de fuertes habilidades de articulación y revisión de requisitos podrían encontrar desafiante la gestión de Codex.

A pesar de esto, si la herramienta funciona como se demostró, Codex permitirá a equipos más pequeños y desarrolladores individuales lograr más, reducir tareas repetitivas y responder de manera más efectiva a los informes de problemas.

Posibles Peligros y Estrategias de Mitigación

Las primeras experiencias con las capacidades de codificación de ChatGPT revelaron una tendencia a perder el enfoque o desviarse de la dirección deseada. Si bien esto no es catastrófico para bloques de código individuales, podría conducir a consecuencias no deseadas y problemáticas si un agente de codificación puede operar con una supervisión limitada.

Para abordar esto, OpenAI ha entrenado a Codex para que se adhiera a las instrucciones descritas en un archivo AGENTS.md. Este archivo, ubicado en el repositorio, permite a los programadores y equipos guiar el comportamiento de Codex. Puede incluir instrucciones sobre convenciones de nomenclatura, reglas de formato y cualquier otra pauta coherente deseada durante todo el proceso de codificación. Esencialmente, extiende la configuración de personalización de ChatGPT a un entorno de equipo centrado en el repositorio.

Además, OpenAI ha introducido una versión de Codex llamada Codex CLI que se ejecuta localmente en la máquina de un desarrollador. A diferencia de Codex basado en la nube, que opera de forma asíncrona y proporciona informes al finalizar, la versión local opera a través de la línea de comandos del programador y funciona de forma síncrona.

En esencia, el programador ingresa una instrucción y espera a que el proceso Codex CLI devuelva un resultado. Esto permite a los programadores trabajar sin conexión, aprovechando el contexto local de su máquina de desarrollo activa.

Prototipo de Investigación con Potencial Prometedor

La demostración fue impresionante, pero los desarrolladores enfatizaron que lo que estaban mostrando y lanzando es un prototipo de investigación. Si bien ofrece lo que ellos llamaron “momentos mágicos”, todavía requiere un desarrollo significativo.

He estado tratando de entender las implicaciones específicas de esta tecnología para el futuro del desarrollo y mi propio proceso de desarrollo. Mi producto principal es un plugin de WordPress de código abierto, con plugins complementarios propietarios. Codex podría potencialmente analizar el repositorio público para el plugin central de código abierto.

Sin embargo, ¿podría Codex gestionar la relación entre un repositorio público y múltiples repositorios privados como parte de un único proyecto general? ¿Y cómo funcionaría cuando las pruebas involucran no solo mi código sino también el lanzamiento de un ecosistema adicional completo, WordPress, para evaluar el rendimiento?

Como programador en solitario, reconozco los beneficios potenciales de una herramienta como Codex. Incluso la suscripción Pro de $200 por mes podría valer la pena. Contratar a un programador humano costaría considerablemente más, asumiendo que pudiera obtener un valor tangible y monetizable de ello.

Como gerente de equipo y comunicador experimentado, me siento cómodo delegando tareas a algo como Codex. No es significativamente diferente de comunicarse con un miembro del equipo a través de Slack.

El hecho de que Codex proporcione recomendaciones, versiones preliminares y espere mi aprobación proporciona una sensación de seguridad en comparación con simplemente permitir que opere libremente dentro de mi código. Esto abre posibilidades intrigantes para un nuevo ciclo de vida de desarrollo, donde los humanos definen los objetivos, la IA redacta posibles implementaciones y los humanos luego aprueban o redirigen la IA para otra iteración.

Preguntas Sin Respuesta e Implicaciones Futuras

Según mis experiencias previas utilizando IA para la codificación, Codex podría reducir potencialmente el tiempo de mantenimiento y acelerar la entrega de correcciones a los usuarios. Sin embargo, su efectividad para agregar nuevas funciones basadas en un documento de especificaciones sigue sin estar clara. Del mismo modo, la dificultad de modificar la funcionalidad y el rendimiento después de la implementación de Codex aún no se ha determinado.

Es de destacar que la codificación por IA está evolucionando en múltiples empresas a un ritmo similar. Pronto publicaré otro artículo sobre el agente de codificación de GitHub Copilot, que comparte algunas funcionalidades con Codex.

En ese artículo, expresé mi preocupación de que estos agentes de codificación pudieran desplazar a los programadores junior y de nivel inicial. Más allá de las implicaciones para los trabajos humanos, también está la cuestión de las oportunidades críticas de capacitación que podrían perderse si delegamos una fase intermedia de la carrera de un desarrollador a la IA.

El “Into the Unknown” de la Industria del Software

Hay una canción en Frozen II de Disney llamada “Into the Unknown”, interpretada por Idina Menzel. La canción refleja el conflicto interno del personaje principal entre mantener el status quo y aventurarse “hacia lo desconocido”.

Con el desarrollo de software agentic, más allá de la simple codificación por IA, toda la industria del software se está embarcando en un viaje “hacia lo desconocido”. A medida que dependemos cada vez más de los sistemas basados en IA para desarrollar nuestro software, es probable que el número de mantenedores calificados disminuya. Esto es aceptable siempre y cuando las IA sigan funcionando de manera efectiva y sigan siendo accesibles. Sin embargo, ¿estamos permitiendo que las habilidades esenciales se atrofien y estamos sacrificando trabajos bien remunerados por la comodidad de delegar en una infraestructura basada en la nube aún no sensible?

El tiempo revelará las respuestas y, con suerte, esta revelación no ocurrirá cuando nos quedemos sin tiempo.

¿Consideraría delegar tareas de desarrollo reales a una herramienta como esta? ¿Cuál cree que será el impacto a largo plazo en los equipos de software o los desarrolladores individuales? ¿Y le preocupa perder habilidades o roles críticos a medida que se confía más del ciclo de vida del código a la IA?