El impacto de la Inteligencia Artificial en el Desarrollo de Software: Un enfoque en code copilot
Este artículo explora el impacto de la Inteligencia Artificial en el desarrollo de software, con un enfoque especial en Code Copilot. Se aborda cómo este asistente basado en IA, desarrollado por OpenAI y GitHub, mejora la productividad y la eficiencia en la programación.
Carlos Ospina
Carlos Ospina
Desarrollador de software autodidacta interesado en la inteligencia artificial, el emprendimiento y las nuevas tendencias tecnológicas.

Dentro del hobbie diario al momento de desarrollar software nos encontramos con tareas desafiantes que resultan ser divertidas. Programar es un arte que nos permite crear soluciones desde cualquier parte del mundo, con solo una conexión a internet. Este arte implica diversos retos: escribir funciones, leer documentación y, por ejemplo, buscar en StackOverflow esa porción de código que nos permite almacenar un PDF en un bucket de S3, seguido de probar su funcionamiento para luego continuar con la siguiente tarea. Esto se puede resumir en un tema de tiempo y productividad.

Hace unos meses, empezamos a escuchar de un asistente llamado Code Copilot que proporciona autocompletado de código en tiempo real a los desarrolladores mientras escriben código. No solo se trata de ofrecer sugerencias de código, resulta sorprendente la precisión con la que lo hace y la mínima cantidad de contexto que necesita para recomendarnos la porción de código necesaria para resolver un problema específico. Contar con una inteligencia artificial como aliada sin duda mejorará la calidad y velocidad con la que entregamos valor, siempre y cuando aprendamos a utilizarla de manera correcta y responsable.

¿Qué es Code copilot?

Es un asistente que usa la inteligencia artificial, más específicamente el modelo Codex para generar porciones de código o funciones completas en C, C++, C#, Go, Java, JavaScript, PHP, Python, Ruby, Scala y TypeScript.

Actúa como un compañero de programación sumamente útil gracias a su enorme base de conocimientos, la cual se nutre de una gran cantidad de información proveniente de foros, repositorios y documentación.

¿Cómo funciona Code Copilot?

Este asistente tiene la capacidad de analizar el contexto proporcionado al programar. Este contexto puede ser un comentario, el nombre de una función o la declaración de una variable con un nombre específico. Internamente, utiliza el modelo llamado Codex, desarrollado por OpenAI, para generar sugerencias y convertir el lenguaje natural en una respuesta estructurada de código en más de 12 lenguajes de programación diferentes. No es magia, es el resultado de entrenar un modelo de datos con billones de datos provenientes de diversas fuentes públicas de código fuente.

Quiero compartir una definición que he obtenido directamente del sitio de OpenAI y que encuentro útil por la forma en que explica parte de los objetivos de Codex. Recordemos que Codex es el modelo que impulsa el funcionamiento de Code Copilot:

Cuando un programador sabe qué construir, el proceso de escribir código puede entenderse como (1) descomponer un problema en problemas más simples y (2) mapear estos problemas sencillos a código existente, como bibliotecas, APIs o funciones ya existentes. Esta última actividad es probablemente la parte menos divertida de programar (y también la barrera de entrada más alta), y es donde OpenAI Codex destaca de manera significativa.

Podríamos establecer una conexión entre chatGPT y Code Copilot, destacando la diferencia fundamental de que este último se especializa y destaca en la generación y recomendación de código fuente.

Left ImageRight Image

Codex, el modelo detrás de code copilot

Codex es el nombre del modelo que hace posible el funcionamiento de code copilot, fue construido mediante la colaboración entre Github y OpenAI, de hecho resulta interesante comentar que podemos empezar a usar directamente el Api de codex para construir nuestro propio asistente personalizado e integrarlo dentro de cualquier aplicación.

OpenAI Codex es un descendiente de GPT-3, internamente los equipos que soportan este proyecto se encargan de depurar la información que es más relevante para el modelo y el uso que va a tener, en este caso, la información relacionada con código fuente para la creación de un asistente que nos ayude a escribir código.

¿Puede Code copilot mejorar la productividad de una empresa?

La respuesta corta es sí. Según datos directamente extraídos de su sitio web, más de 37,000 empresas ya están utilizando este asistente en sus equipos de desarrollo, entre las cuales se incluyen compañías destacadas como Mercado Libre, Duolingo, Stripe, Shopify, Dell y Coca-Cola.

Se demostró que Code Copilot puede aumentar la productividad y acelerar el ritmo con el que se desarrolla software en un 55%. Les dejo el enlace a un post llamado Investigación: cuantificando el impacto de GitHub Copilot en la productividad y la felicidad de los desarrolladores, donde se aborda de forma más detallada, utilizando cifras y encuestas realizadas sobre cada uno de los aspectos que se tuvieron en cuenta para llegar a esta conclusión.

Considero que Code Copilot puede ser una ventaja competitiva al optimizar el proceso de creación, documentación, análisis y comprensión de código. Se adapta a la tendencia actual de la programación colaborativa (peer programming), promoviendo una colaboración entre desarrolladores y la inteligencia artificial.

¿Cómo Code copilot puede cambiar la forma como desarrollamos software?

La mayoría de los cambios pueden generar incertidumbre, pero indudablemente contar con un asistente que nos apoye a escribir y depurar código de forma más rápida es algo increíblemente útil. Sin embargo, es crucial no dejar de aprender, ya que el desarrollo de software implica un proceso mucho más complejo que, por ahora, no puede ser reemplazado. Como los engranajes que hacen funcionar un motor, debemos crear piezas de código que cumplan con los principios SOLID y garantizar que estos componentes se comuniquen y funcionen de la mejor manera posible. Aquí es donde debemos centrar nuestros esfuerzos. Code Copilot nos ofrece una manera de escribir código de manera rápida, pero como programadores, debemos mantener la consistencia, respetar los principios y garantizar la calidad de nuestro código.

Debemos aprender a delegar adecuadamente las tareas que serán realizadas por code copilot, no olvidar que es un asistente IA que va a centralizar nuestros esfuerzos en crear código de mejor calidad en menor tiempo, y garantizar esa calidad implica no dejar de estudiar ni aprender en ningún momento.

Code Copilot: Un asistente, no un sustituto

Code Copilot opera como un asistente para los programadores, no como un reemplazo. El programador sigue desempeñando un papel crucial al tomar decisiones importantes, comprender el contexto y garantizar que el código cumpla con los requisitos y estándares de calidad.

Visual studio code  + Code copilot

Considerando que Visual Studio Code es un IDE desarrollado y respaldado por Microsoft y la comunidad open source, y siendo el editor de texto más ampliamente utilizado para al momento de tirar código, no es sorprendente que Code Copilot esté inicialmente disponible como una extensión en este entorno. Aunque actualmente se puede configurar en otros IDEs, la facilidad de ejecución y gestión dentro de Visual Studio Code lo convierte en la opción preferida por la comunidad de desarrolladores. Además, la integración sencilla con GitHub añade un valor significativo. Sin duda, las futuras funcionalidades llegarán primero a los entornos de Microsoft debido a la prioridad que se otorgará al stack de integración entre sus herramientas.

Aunque podemos configurar el asistente en otros IDEs, actualmente y en un futuro cercano, aquellos que utilicen Visual Studio Code sacarán más provecho de esta herramienta. Esto se debe a la prioridad que se le dará a las futuras actualizaciones, enfocándose especialmente en la mejora continua de la experiencia para los usuarios de este editor.

¿Una inversión qué vale la pena?

Dentro de la sección de precios que encontramos al navegar por el sitio web oficial de Code Copilot, observamos que los planes ofrecidos son asequibles. Aunque internamente, los modelos de datos utilizados para su funcionamiento pueden implicar costos no precisamente bajos, la inversión de gigantes tecnológicos en OpenAI reduce el costo final que nosotros como usuarios vamos a terminar pagando.

Si te interesa empezar a usar el asistente, en el sitio web, se encuentra disponible una prueba gratuita de 30 días que permite evaluar si Code Copilot cumple con las necesidades que tienes para mejorar tu productividad al escribir código, de ser así son 10 dolares el cargo fijo mensual por continuar usando las capacidades de esta inteligencia artificial.

No es mi intención venderte el asistente, pero te invito a que, después de leer este post, sigas explorando cómo Code Copilot puede convertirse en tu aliado. Puedes revisar algunos videos en YouTube publicados por la comunidad de programadores para formar tu propia opinión sobre si es una herramienta valiosa o si podría llegar a obstaculizar tu trabajo.

La promesa de la IA en la programación: Code Copilot

La herramienta de IA Code Copilot de GitHub en colaboración con OpenAI es un claro ejemplo de cómo la inteligencia artificial puede transformar nuestra forma de trabajar. Code Copilot sugiere bloques de código y soluciones a problemas comunes en la programación, basándose en una extensa base de datos de código fuente, esto nos permite reutilizar código dentro de nuestros proyectos sin necesidad de reescribir la rueda, solo es necesario agregar un comentario claro sobre lo que debe hacer nuestra función y code copilot procederá a mostrarnos la porción de código que mejor se adapte a nuestra necesidad, es nuestra tarea determinar si cumple o no con lo que necesitamos, presionamos TAB y podremos ejecutar ya nuestra función, pero nos queda faltando algo, ¿verdad? Debemos escribir un test que nos permita comprobar que estamos controlando posibles errores. Para hacerlo, presionamos CTRL + I para abrir la interfaz interactiva de Code Copilot, que nos permite ejecutar comandos. Escribiendo “/test”, obtendremos recomendaciones para llevar a cabo nuestras pruebas.

Cómo Code Copilot cambia el juego

La integración de Code Copilot en el flujo de trabajo puede mejorar significativamente la eficiencia y la productividad en varios aspecto:

  • Búsqueda y adaptación de código: Proporciona sugerencias rápidas y adecuadas, ahorrando tiempo en la búsqueda y adaptación de código.
  • Resolución de errores: Ayuda a identificar y corregir problemas más rápidamente, reduciendo el tiempo de depuración.
  • Documentación: Genera comentarios más detallados sobre una funcionalidad específica para el mejor entendimiento de otros desarrolladores al momento de ver nuestro código.
  • Pruebas unitarias: Crear test personalizados que nos permitan identificar y solucionar posibles fallas que puedan llegar a generar futuros inconvenientes.
  • Acceso rápido a recomendaciones: No necesitamos salir de nuestro IDE para obtener sugerencias de la porción de código o función para realizar una tarea específica.
  • Aprendizaje: Code Copilot tiene la capacidad de explicarnos detalladamente el proceso de implementación de una solución, proporcionando el paso a paso, los métodos o clases esenciales, así como la función que desempeña cada uno de ellos. La lectura de comentarios y la comprensión de cómo se generó el código nos brindarán la oportunidad de elevar nuestro nivel de conocimiento.
  • Programar en pares con una IA: Este asistente nos acompañará en nuestro proceso creativo durante el desarrollo de software. Con su amplia base de conocimientos, ofrecerá recomendaciones de buenas prácticas, actuando como un colaborador que no descansa y nos apoyará en mejorar la velocidad y calidad con la que escribimos código.

Code Llama, una alternativa a code copilot para los curiosos

Facebook ha estado realizando contribuciones significativas a la comunidad de código abierto durante los últimos meses al liberar varias versiones del LLM denominado Llama. Esto implica que cualquier persona con una PC relativamente potente puede descargar y ejecutar este modelo sin la necesidad de realizar pagos, brindando así la oportunidad de crear soluciones impulsadas por IA sin depender de APIs externas que puedan generar costos.

Es destacable que Facebook continúa brindando soporte a este LLM y ha sorprendido a la comunidad con nuevas versiones, como Llama 2. Aunque podría pensarse que, al ser modelos libres, podrían tener una capacidad generativa inferior en comparación con los modelos de la familia de OpenAI, como GPT-4, la realidad es que la calidad de los datos utilizados para el entrenamiento de Llama lo posiciona como un rival digno que no se queda muy atrás de estos modelos.

En el contexto de estos avances, Facebook define a Code Llama como una versión especializada en código de Llama 2, creada mediante un entrenamiento adicional en conjuntos de datos específicos de código. Esto subraya el enfoque especializado y la atención de Facebook hacia el desarrollo de modelos de lenguaje natural destinados a la comprensión y generación de código con un modelo tan potente y libre para la comunidad. 

Conclusión: La IA como aliado en la programación

Herramientas como Code Copilot representan un avance en la integración de la IA en el desarrollo de software. Permiten una mayor concentración en la resolución de problemas y la creatividad, delegando tareas repetitivas y la búsqueda de soluciones estándar a la inteligencia artificial. Este cambio no solo ahorra tiempo, sino que también abre nuevas posibilidades para innovar y mejorar la calidad del trabajo en programación.

*Imágenes creadas con DALL·E, 2023-12-11.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Blog

Contáctanos