agileaiartificial intelligenceassistancecodingdevelopersGeneralgithubmicrosoftprogramming

Escribiendo código con copiloto

IMAGE: GitHub Copilot

El pasado 29 de junio, Microsoft y OpenAI anunciaron el desarrollo de GitHub Copilot, una herramienta que aprovecha el enorme repositorio de código de GitHub para ayudar a los desarrolladores ofreciéndoles hacer pair programming, el modo de desarrollo en pareja clásico de las metodologías ágiles, pero con una inteligencia artificial, que se encarga de autocompletar con sugerencias sus líneas de código o incluso funciones enteras dentro de su herramienta de edición.

La idea de Microsoft es simplificar el proceso de programación, con la idea de mantener fidelizados a los programadores que utilizan las herramientas de la compañía y ser capaz de atraer a otros. El sistema se basa en la enorme cantidad de código fuente que ha sido subido a lo largo de los años al servicio de código compartido GitHub, que Microsoft adquirió en 2018, así como en otros sitios web. Microsoft y GitHub han desarrollado Copilot con la ayuda de OpenAI, una empresa de investigación de inteligencia artificial que ya había sido respaldada por Microsoft en 2019.

La idea de ordenadores que son capaces de escribir su propio código no es en absoluto nueva, pero por el momento, se trataba de herramientas por lo general muy poco versátiles con las que los programadores tendían a no encontrarse especialmente cómodos. La diferencia en el caso de GitHub Copilot es la idea de utilizar un gran volumen de código en múltiples lenguajes, y toda la potencia de computación de la nube de Microsoft, Azure: la herramienta examina el código que el desarrollador ha escrito, sus comentarios y la posición del cursor, y ofrece una serie de posibles líneas para agregar, que el desarrollador puede aceptar o no. A medida que el desarrollador va tomando decisiones con respecto a esas sugerencias, el asistente se va volviendo más sofisticado. Según las pruebas en el entorno de desarrollo de GitHub, un gran número de desarrolladores han estado probando la herramienta en su día a día, y la mayoría de ellos han aceptado sugerencias y no han desactivado la función.

Algunos desarrolladores han mostrado preocupación por las posibles implicaciones legales por el uso de código de terceros, como en el caso de aquellas partes del código que requieren atribución. Como en casos anteriores, como el del uso de repositorios de imágenes compartidas mediante licencias Creative Commons para entrenar algoritmos de reconocimiento facial, la polémica, curiosamente, radica en la propiedad del material obtenido a partir de esos repositorios, algo que en el caso del código resulta, como mínimo, curioso. En el caso de GitHub, hablamos no solo de un repositorio de código enorme compartido a lo largo de mucho tiempo, sino además, de código generalmente de muy buena calidad: por lo general, los desarrolladores suben código a GitHub después de haberse asegurado de su calidad y de haberlo documentado adecuadamente, dado que ese código pasa a formar parte de su perfil como desarrolladores, en cierto sentido, su curriculum en la red por el que muchas compañías se interesan por ellos.

Ahora, ese código puede ser utilizado por una herramienta de inteligencia artificial para hacer sugerencias a terceros y que lo reutilicen. En algunos casos, cuando se trata, por ejemplo, de gestionar servicios externos, la ventaja es evidente: el desarrollador no tiene que estudiarse las APIs y las características de los conectores del servicio de turno, sino que puede directamente aceptar una sugerencia de código de un módulo que ya lo haga, comprobar que funciona adecuadamente, y centrar su atención en otra cosa.

Por otro lado, está la sensación de estar contribuyendo con tu propio código y con el entrenamiento que proporciona tu uso de la herramienta a crear una funcionalidad que, eventualmente, puede terminar siendo el reemplazo de tu propio trabajo: hoy es un asistente para programar en pareja, mañana directamente eres redundante y el desarrollo lo hace la máquina sola. Una preocupación que no deja de ser cortoplacista – eventualmente, la máquina hará todo aquel trabajo en el que el uso de la inteligencia humana no ofrezca diferenciación alguna – pero que no deja de ser real en el contexto actual. Si el futuro es que una parte creciente del desarrollo lo hagan inteligencias artificiales, yo procuraría enfocarme en aprender muy bien y ganar mucha experiencia el manejo de esas inteligencias artificiales, convertidas ya en un parámetro del entorno, para ser más competitivo en mi trabajo, pero ese razonamiento no es algo que todo el mundo lleve a cabo fácilmente, y muchos, de hecho, reaccionan en sentido opuesto.

Veremos cómo evoluciona el uso de GitHub Copilot. Pero sin duda, estamos ante el inicio de algo muy interesante.


Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button