GitHub Copilot X: la inteligencia artificial como asistente en el desarrollo de aplicaciones

Escrito por Jose Manuel Reche en 2024-04-09T08:25:25+02:00

Topics: Full-Stack Development

GitHub Copilot X, La inteligencia artificial como asistente en el desarrollo de aplicaciones

En el dinámico mundo del desarrollo de software, los desarrolladores se esfuerzan constantemente para mejorar la productividad, la calidad del código y la eficiencia de sus procesos. Con la llegada de la inteligencia artificial (IA) en el desarrollo del software, han surgido herramientas para revolucionar la forma en que los desarrolladores escriben código.

El surgimiento de herramientas como GitHub Copilot X (en adelante «Copilot») ha marcado un hito significativo al introducir una colaboración entre humanos (programadores) y máquinas de una manera innovadora. Este fenómeno ha dado lugar a un nuevo paradigma en el desarrollo de software, donde el pair programming, que hasta hace poco se hacía entre dos personas, ahora se puede hacer con la ayuda de la IA.

Copilot es una herramienta de IA diseñada para ayudar a los desarrolladores a escribir código. A diferencia de ChatGPT, Copilot se basa en el modelo de OpenAI «Codex» que es un modelo específico para generar código fuente y que ha sido entrenado con el código fuente disponible en los repositorios públicos de GitHub; con lo cual, además, hace que sea una herramienta compatible con prácticamente todos los lenguajes de programación.

Cómo funciona Copilot

Copilot se basa en un servicio en la nube y solo requiere la instalación de un plug-in en el entorno de desarrollo (IDE). Una vez instalado, no es necesario configurar nada más, no es intrusivo, ni requiere modificar el código fuente del proyecto.

A partir de este punto, el programador dispone de distintos tipos de asistencia, el más utilizado es el «modo autocompletar». Con este modo, según el programador va escribiendo código, el plug-in de Copilot realiza peticiones al servicio en la nube y este, a su vez, ejecuta el modelo Codex y como respuesta genera un código (snippet) que se visualiza a modo de sugerencia en el IDE. Por último, el programador confirma si le interesa o no aplicar el código propuesto.

Github gráfico

Además del modo autocompletar, Copilot dispone de los siguientes modos:

  • Prompt: El programador escribe los requisitos a modo de comentario en el código fuente y Copilot hace una propuesta.
  • Chat: Funciona de forma muy parecida a ChatGPT, el programador dispone de una interfaz en la cual mediante lenguaje natural formula preguntas o solicita la generación de código según los requisitos especificados.
  • Fix: Es de utilidad para la corrección de errores de sintaxis, la eliminación de código redundante, la corrección de lógica incorrecta y la solución de problemas de rendimiento.
  • Simplify: Sugiere propuestas para la eliminación de código innecesario, la reducción de la complejidad del código y la mejora de la legibilidad del código, entre otros.
  • Explain: El programador selecciona el código fuente y Copilot explica en el chat lo que hace cada línea del código.
  • Generate test: El programador selecciona el código fuente y Copilot genera el código fuente que implementa los tests (unitarios y de integración).

Copilot está en constante evolución con la incorporación continua de nuevas funcionalidades. La letra «X» en el nombre del producto (GitHub Copilot X) hace referencia a modo de placeholder representando las diversas funciones que dispone y que ofrecerá a futuro.

Nuestra valoración del asistente de programación Copilot

En el área de innovación y desarrollo de aplicaciones de IThinkUPC, hemos evaluado distintas herramientas de IA como asistentes para la programación. En el caso de Copilot desde su fase inicial y nuestra experiencia tras haberlo utilizado en distintos proyectos, nuestra valoración ha sido la siguiente:

  • En el modo prompt y chat es muy importante saber formular las preguntas (independientemente del idioma) para obtener buenos resultados (propuestas); es cuestión de práctica.
  • Es fundamental poseer al menos un conocimiento teórico sobre la tecnología, lenguaje de programación, framework, etc. de lo que se va a preguntar para tener criterio para evaluar si la propuesta que hace es la correcta.
  • Se debe tener en cuenta que, en algunas situaciones, dependiendo de la pregunta, se puede producir «alucinación» de la IA (modelo), es decir, que Copilot genere código que parezca correcto a nivel funcional, pero que contenga errores lógicos o falta de implementación de buenas prácticas, etc.
  • Hemos constatado una mejora en la productividad, pero es una medida que no se puede generalizar y varía en función del tipo de proyecto: frontend, backend y los lenguajes de programación. Hemos obtenido mejoras de productividad que van desde un 15 % (el mínimo) hasta un 45 %.

El desarrollo de software está experimentando una evolución constante y muy rápida con la irrupción de la IA como una herramienta revolucionaria que redefine las reglas del juego. La presencia creciente de la IA abarca cada vez más áreas, lo que nos obliga a adaptarnos a su integración, especialmente en la automatización de tareas y procesos repetitivos, permitiéndonos dedicar más tiempo y recursos a desafíos de mayor complejidad.

En IThinkUPC, como empresa dedicada a ofrecer soluciones innovadoras, reconocemos el valor estratégico de la IA y estamos comprometidos a aprovechar al máximo estas tecnologías en nuestro proceso de desarrollo de aplicaciones. Al integrar la IA en nuestros proyectos, no solo mejoramos la calidad y la velocidad de entrega, sino que también creamos soluciones que satisfacen las expectativas de nuestros clientes.