Topics

Prueba "Jules", el agente de programación de Google

  • column

"¿La IA va a escribir código y nos quedaremos sin trabajo?" Era una broma, pero cada vez se vuelve menos broma. GitHub Copilot, CodeX y otras herramientas ya escriben código, pero el nuevo Jules de Google parece estar a otro nivel.

Está impulsado por Gemini 2.0, el último modelo de IA de Google, y lo más destacado de Jules es su capacidad autónoma.

Quizás llegue el día en que haga todo el trabajo por nosotros. ¡Tengo grandes expectativas! Probamos lo que puede hacer.

Lo que puede hacer Jules

Jules es un agente de IA que realiza tareas de programación de forma autónoma. Va mucho más allá de la simple generación de código e incluye automatizaciones avanzadas como las siguientes.

  • Desglose de tareas complejas y planificación: divide una tarea en pasos más pequeños y elabora un plan de implementación.
  • Generación y corrección de código: genera código en varios archivos fuente o corrige el código existente.
  • Corrección de errores y depuración: identifica los errores del código y los corrige.
  • Creación y ejecución de pruebas: ejecuta las pruebas existentes o crea nuevas para verificar que los cambios funcionan correctamente.
  • Obtención del repositorio y clonación: obtiene el código de repositorios como GitHub, lo clona en una máquina virtual y continúa el trabajo.
  • Creación de pull requests: una vez completados los cambios en el código, se propone como pull request.
  • Trabajo asíncrono: mientras el usuario realiza otras tareas, las tareas de programación pueden avanzar en segundo plano.
  • Resumen de audio (CodeCast): permite crear un audio que resume la actividad reciente de código.

¿En qué se diferencia de «Codex», la nueva función de ChatGPT?

Qué es Codex

Codex incorpora «codex-1», un modelo de lenguaje de gran escala especializado desarrollado por OpenAI. Basado en el último modelo «o3» y optimizado para el desarrollo de software, es un modelo inteligente que incorpora el estilo de codificación y los conocimientos de ingenieros senior con amplia experiencia.

Funciones

  • Autocompletado, sugerencias y generación de código (en tiempo real)
  • Generación de código a partir de comentarios
  • Sugerencias de funciones y métodos para el código existente
  • Fortaleza en la modificación y ampliación de bases de código existentes

Codex/Copilot es una herramienta de "asistencia de entrada" que, principalmente, ayuda en tiempo real al escribir o modificar código existente. Funciona como un programador en pareja con IA (una herramienta de apoyo a la programación).

Jules, en cambio, actúa como un "desarrollador delegado" y la gran diferencia es que puede ejecutar de forma autónoma un abanico más amplio de tareas, desde el inicio hasta el final de un proyecto. Por eso, Jules podría incluso encargarse de la construcción inicial de un proyecto nuevo desde cero, y se puede decir que se centra más en la "automatización de tareas de desarrollo".

  • También permite crear proyectos nuevos: según la tarea que le indique el usuario (por ejemplo, "crea una aplicación web básica"), Jules tiene la capacidad de crear desde cero los archivos y la estructura de directorios necesarios y generar el código.
  • Integración profunda con repositorios de GitHub: Jules clona en un entorno virtual el repositorio de GitHub que indique el usuario y trabaja allí. Gracias a esto, no se limita a cambiar un solo archivo, sino que puede operar sobre todo el proyecto, realizando cambios estructurales en todo el repositorio, añadiendo nuevos archivos o eliminando archivos existentes.
  • Trabajo autónomo: desde la configuración inicial del proyecto hasta la creación de archivos, la generación de código, la ejecución de pruebas y la creación de pull requests, avanza por todo el proceso de forma autónoma.

Jules tiene mayor autonomía y puede encargarse de todo el ciclo de tareas de desarrollo; su papel es similar al de un "programador delegado".

¡Lo probamos!

Cómo usar Jules

Julesrecibe las instrucciones principalmente a través de una interfaz de chat.

1. Acceder a Jules: puedes acceder desde jules.google.com.

2. Conectar el repositorio de GitHub: selecciona el repositorio y la rama de GitHub con los que vas a trabajar. Para esta prueba, preparamos el repositorio "jules-test".

3. Instrucciones en el prompt: ¡Puedes escribirlas en japonés sin problema! En esta prueba, implementaremos un reloj con JS.

4. Aprobación del plan de implementación: Jules primero presenta un plan de implementación. El usuario lo revisa y lo aprueba. ¡Es muy útil que establezca un proceso de trabajo claro!

5. Ejecución de la codificación y seguimiento del progreso: una vez aprobado el plan, Jules comienza a programar automáticamente e informa del avance del trabajo.
Aunque tarda un poco, ¡se han generado los archivos index.html, script.js y style.css!

6. Revisión y aprobación de los cambios: cuando se completan los cambios, Jules crea una pull request junto con el diff de las modificaciones. El usuario la revisa y, al aprobarla, los cambios se incorporan al repositorio.

¿No te cuesta bastante redactar los mensajes de commit? ¡Jules los resume y los crea por ti!

Haz clic en "publish branch" en la esquina inferior derecha para enviar los cambios a la rama tokyo-clock.

Al hacer pull de la rama... ¡se han generado archivos en el editor!

Así se ve la vista previa en el navegador.

Hasta ahora, las funciones de IA solo te explicaban los pasos de implementación o el contenido del código cuando escribías un prompt como "implementa un reloj con JavaScript". Esta herramienta, en cambio, se encarga de todo el proceso, desde crear los archivos hasta enviarlos a git.

Para una implementación sencilla como esta, delegarle todo parece funcionar bien, pero no sé realmente hasta qué escala de implementación se le puede confiar una tarea así...

Ahora voy a pedirle un poco más, añadiendo la instrucción "haz que la decoración sea más vistosa".

Me propuso varias opciones, pero le dejo la decisión a él.

¡Cambió el fondo a un degradado!

¡Basta con crear un repositorio para que genere los archivos desde cero, escriba el código y lo envíe a git! Es realmente un programador suplente.

Sin embargo, actualmente se ofrece como versión beta y tiene límites de uso (por ejemplo, 5 tareas al día).

Además, crear archivos e implementar programas lleva bastante tiempo, y el campo de entrada tuvo algunos fallos que impidieron que los cambios se reflejaran correctamente.

Por otro lado, parece que si Jules encuentra un error, el trabajo realizado hasta ese momento no se confirma, por lo que a veces no se aplican los cambios parciales que sí necesitabas.

Le pedí que convirtiera el reloj de JavaScript de esta vez a Next.js, y logré hacerlo y preparar el entorno, pero por un error en el camino no pude descargar los archivos de Next.js a mi equipo... Creo que, aunque es práctico, también tiene no pocas desventajas.

Conclusión

Si Jules sigue volviéndose más inteligente, quizás podamos dejarle a él las tareas rutinarias y dedicar mucho más tiempo a aprender nuevas tecnologías o a nuestros pasatiempos.

¡Quizás Jules, como compañero de los ingenieros, cambie por completo las reglas del desarrollo!

Imagen cortesía del sitio web de Jules

Autor de este artículo

Me dedico principalmente al maquetado y al desarrollo frontend con JavaScript, React y Next.js. Me alegra mucho cuando los sitios en los que participo se publican con éxito. Mi afición es tocar la guitarra. Me gustan los gatos y las batatas asadas 🐱🍠

Hirocchi

Ingeniero/a de frontend / Se unió en 2022

Ver los artículos de este miembro del equipo

Equipo de confianza y una respuesta ágil son nuestras fortalezas

En Liberogic, nuestro personal veterano impulsa los proyectos de forma proactiva, por lo que nuestros clientes nos valoran muy positivamente.
Nos esforzamos por asignar de manera adecuada a un gestor de proyectos y a un director, para que el proyecto avance sin contratiempos en su conjunto. Nuestro estilo consiste en distribuir los recursos de forma adecuada a cada tarea, evitando el aumento de costes por dedicaciones completas innecesarias. También somos reconocidos por la rapidez con la que comprendemos el alcance del trabajo y preparamos y presentamos los presupuestos.

Nota: Ten en cuenta que Liberogic no se dedica activamente a los servicios de desarrollo en las instalaciones del cliente (tipo SES).

Puede utilizar prácticamente todas las principales herramientas de gestión de proyectos y de chat, como Slack, Teams, Redmine, Backlog, Asana, Jira, Notion, Google Workspace, Zoom, Webex y más.

Cuéntenos sus desafíos web.

Casos de Estudio