Inteligencia artificial

GitHub Copilot, nuevas oportunidades entre la IA y el desarrollo de software



Dirección copiada

No puede reemplazar a un programador o a un desarrollador, pero es una ayuda valiosa que favorece la creatividad y la productividad: GitHub Copilot abre la puerta a una revolución en la escritura de código, pero no está exenta de problemas críticos.

Publicado el 10 abr 2024



GitHub Copilot, nuevas oportunidades entre la IA y el desarrollo de software

Incluso antes de ser un asistente de inteligencia artificial para programadores y desarrolladores, GitHub Copilot forma parte de la amplia gama de tecnologías que cooperan con los humanos. No solo hay brazos robóticos o máquinas enteras que facilitan la tarea de los operadores humanos, sino que no solo hay asistentes que les ayudan a realizar las tareas rutinarias diarias.

Incluso quienes programan tienen un aliado válido que, al menos por el momento, no socavará la profesión de quienes escriben software. Un mundo aún imperfecto que promete cambiar las reglas de la escritura de código. Aún queda mucho trabajo por hacer, pero las sugerencias proporcionadas por GitHub Copilot ya pueden aumentar la productividad de los desarrolladores y programadores.

Descubriendo GitHub Copilot: la IA cambia el enfoque de la programación

GitHub Copilot usa la IA para ayudar a los programadores a escribir código. Está diseñado para dar consejos y sugerencias completando partes del código según el contexto y se basa en el código publicado en GitHub, un inmenso repositorio impulsado por más de 100 millones de programadores.

No reemplaza a los humanos, sino que proporciona un apoyo que les permite concentrar más esfuerzos donde los problemas requieren un mayor conocimiento y, a pesar de la ventaja práctica que representa, GitHub Copilot aún muestra algunos límites entre un código de calidad perfectible y la falta de predisposición a evitar errores.

De la idea a la implementación: la historia de GitHub Copilot

El Copiloto de GitHub es una historia breve y reciente que tardó exactamente un año en pasar desde la vista previa técnica hasta el producto final.

En junio de 2021, GitHub anunció el lanzamiento de Copilot en el entorno de desarrollo de Visual Studio Code. En octubre del mismo año, cuatro meses después, se lanzó como complemento (plug-in) en la tienda de JetBrains, una empresa que proporciona herramientas para el desarrollo de software.

En junio de 2022, tras un viaje continuo y rápido, GitHub Copilot dejó la fase de vista previa y pasó a estar disponible, a cambio de una cuota, para todos los programadores.

Ampliando su enfoque, GitHub Copilot apuesta por OpenAI Codex, una versión inicialmente modificada del modelo generativo de la GPT-3. Si lo analizamos desde este punto de vista, es la declinación de un modelo lingüístico la que ha dado origen a varias tecnologías, entre las que destaca ChatGPT.

GitHub Copilot: guía de funciones esenciales

Aquí repasamos las características esenciales, pero Microsoft, que compró GitHub en 2018, aloja guías más exhaustivas en su sitio web.

GitHub Copilot no es de uso gratuito. La licencia cuesta entre 10 y 19 dólares al mes (9,28 euros y 17,63 euros respectivamente).

Las características principales se refieren a la finalización del código y a la compatibilidad con diferentes lenguajes de programación. A medida que el operador escribe el código, GitHub Copilot devuelve sugerencias prácticas para completarlo.

Paralelamente, GitHub Copilot se puede utilizar con varios lenguajes de programación, como Java, JavaScript, Python y Ruby.

Los casos de uso de GitHub Copilot también son muchos y se cristalizan gracias a las extensiones del propio Copilot:

  • Generación de código: GitHub Copilot genera código funcional en función del contexto específico. Basta con empezar a escribir una línea para poder evaluar entre las alternativas propuestas por la IA y elegir la que sea adecuada para usted.
  • Explicación del código: esta es una característica interesante que no debe subestimarse. Copilot explica, desde un punto de vista sintáctico y lógico, los objetivos de una parte del código que ha examinado.
  • Refactorización: cuando se trabaja en grupo, es conveniente que los desarrolladores puedan unificar los nombres de las variables y hacer que el código sea más modular. Copilot se presta para realizar este trabajo de estandarización, lo que ayuda a mantener el orden y la limpieza.

Por último, pero no por ello menos importante, hay que tener en cuenta que GitHub Copilot dista mucho de ser perfecto, pero es un sitio de construcción en constante evolución y mejora constante.

Impulsar la eficiencia de la programación con la ayuda de GitHub Copilot

La versatilidad de GitHub Copilot repercute positivamente en diferentes fases del proceso de programación y desarrollo, todas las cuales cabe mencionar:

  • La reducción de errores: los errores, especialmente los de sintaxis, no son infrecuentes al escribir código. GitHub compensa este problema completando la escritura correctamente
  • La calidad del código: al sugerir formas mejores y más eficientes de completar el código, GitHub optimiza su calidad
  • La reducción del tiempo dedicado a la documentación: no es necesario consultar manuales y guías para recordar las funciones y la sintaxis, el operador humano cuenta con el apoyo de GitHub Copilot. Esto también se aplica a quienes están aprendiendo un lenguaje de programación.
  • Automatización: Copilot reconoce como tales las actividades repetitivas o cíclicas.

Sin embargo, es imprescindible una aclaración: es necesario encontrar un punto de equilibrio subjetivo entre el aprendizaje que se delega totalmente en GitHub Copilot y el que se lleva a cabo a través de humanos. Copilot es un apoyo, no un profesor.

Derechos de autor e IA: las incertidumbres del código generado por GitHub Copilot

Las supuestas invasiones ilegales de derechos de autor son un tema de actualidad que afecta a toda la IA generativa, y GitHub Copilot no es la excepción. Existe el temor de que pueda basarse en bloques de código que forman parte de proyectos existentes y protegidos por derechos de autor.

Es cierto que una gran parte de los proyectos en los que se basa Copilot son de libre acceso pero, al mismo tiempo, también estamos avanzando en el límite de los meandros y esto puede, incluso de forma no intencionada, dañar las directivas de algunos tipos de licencias.

Por su parte, GitHub sostiene que el código generado por Copilot deja la propiedad intelectual en manos de la persona que lo desarrolló.

Proteja la privacidad y la propiedad intelectual

Proteger la privacidad y la propiedad intelectual cuando se usa GitHub Copilot es crucial. Varios estudios han revelado la posibilidad de que los modelos lingüísticos puedan revelar información confidencial, como, por ejemplo, las credenciales para acceder a los sistemas empresariales, pero también datos personales.

La solución más inmediata es proteger los datos con técnicas de cifrado y evaluar los modelos de cifrado homomórficos que permitan trabajar con datos ya cifrados.

Estas medidas son necesarias, pero para lograr la máxima eficacia, deben incluirse en las prácticas correctas de ciberseguridad a fin de crear entornos de trabajo protegidos y resilientes.

La ciberseguridad en la era del Copiloto de GitHub: ¿riesgo o innovación?

La respuesta obvia involucra a ambos. El Copiloto de GitHub está en constante evolución y no puede considerarse infalible. Creer lo contrario puede afectar negativamente tanto al desarrollo del código como al aprendizaje. Se trata de una herramienta diseñada para ayudar a los profesionales (entendidos como personas con una amplia experiencia) y no para sustituirlos o sustituir a los programadores en ciernes. No «funciona en lugar de», sino que «ayuda», y tener en cuenta esta frontera coincide con detenerse en los aspectos innovadores de Copilot sin ahondar en aquellos que representan un riesgo.

Evaluación de vulnerabilidades en el código sugerida por GitHub Copilot

Revisar el código generado por una IA no es una opción sino un acto necesario. Existen diferentes métodos para evaluar sus vulnerabilidades y, independientemente del procedimiento que se prepare, algunos aspectos deben entenderse como esenciales.

Entre ellos, destaca la necesidad de una revisión por pares del código y el uso de firmas para garantizar su integridad.

Esto va acompañado de la necesidad de validar los datos entrantes, ya que pueden ser corresponsables de las vulnerabilidades reveladas por Copilot.

El código en su conjunto, y no solo el generado por la IA, debe ser controlado por operadores humanos. Los fallos, los errores o las vulnerabilidades no pueden delegarse en un asistente de IA sin exponerse a críticas fáciles que pueden dañar la imagen de los desarrolladores y las empresas para las que trabajan.

Prácticas de seguridad para el código generado por IA

Microsoft también proporciona información útil sobre la seguridad del código generado con GitHub Copilot, e invita, en primer lugar, a utilizarlo de manera reflexiva.

Entre las prácticas de seguridad recomendadas, además de prestar atención a las licencias para evitar infringir el contenido protegido por derechos de autor, se incluyen:

  • La verificación del código que, como se mencionó, debe delegarse en el operador humano.
  • Prevención de vulnerabilidades, con prácticas útiles para bloquear partes del código que no garantizan la seguridad.

Por último, pero no por ello menos importante, los procesos de validación de código deben organizarse según los principios del análisis estático, es decir, un enfoque que permita interceptar los problemas de seguridad (y los errores) durante el desarrollo de un software y no solo durante el proceso de su lanzamiento a producción.

Colaborar con la IA: el papel de GitHub Copilot en el futuro del trabajo

Los temores de reemplazar a los humanos por la IA están parcialmente fundados y GitHub Copilot es la cristalización de estos temores. Si tenemos en cuenta la contribución que Copilot puede hacer a la hora de llevar a cabo tareas repetitivas, es honesto hablar de reemplazo.

Para todo lo que esté al más alto nivel, el GitHub Copilot, como cualquier otra IA generativa, es un asistente y lo seguirá siendo durante un tiempo difícil de definir, que, por lo que sabemos a día de hoy, puede ser incluso muy largo.

Es evidente que cuanto más pueda el hombre garantizar, con su formación, las prerrogativas de la creatividad, la conciencia y la abstracción, más tiempo pasará durante el cual las IA generativas permanecerán confinadas al papel de asistentes.

Fuente: Agendadigitale.eu, Network Digital360

Artículos relacionados

Artículo 1 de 2