¿El fin de los programadores? ¿Qué es Github Copilot?
Esta semana se anunció algo que es el temor de muchos programadores y la alegría de muchos otros, habla de la nueva herramienta de inteligencia artificial que está pensada para ayudar a los programadores en su trabajo del dia a dia para escribir código, estoy hablando de Github Copilot, por lo que no quise quedarme atrás e investigue un poco y decidí escribirles un artículo al respecto.
¿Qué es?
Github Copilot es un asistente de escritura de código que se compone de una inteligencia artificial enseñada a partir de millones de repositorios de código disponibles en Github, su base por los momentos y por lo que he podido investigar esta en hacer sugerencias de código semi complejo con la intención de agilizar el trabajo de los programadores.
Está diseñado como un asistente de código por lo que su función principal, dicha por el mismo creador es brindar ayuda a los programadores para agilizar la escritura de un código. Aun así la IA debe saber que es lo que debe hacer para poder escribir el código y hace falta del programador para que evalúe y corrija dicho código en caso de que este este hecho de manera incorrecta.
¿Cómo funciona?
Para entender cómo funciona hace falta entender cómo funciona una inteligencia artificial así que de manera muy resumida voy a explicar eso primero. Una inteligencia artificial es un programa que toma como datos de entrada un conjunto de datos relacionados con su tarea, datos que la enseñan a cómo realizar la tarea de manera exitosa y a cómo adaptarse en caso de no hacerlo de manera exitosa. Dando como resultado a una especie de programa que autoaprende debido a que sus mismas interacciones con la tarea que tiene que hacer le sirven para poder seguir aprendiendo. Esto a su vez da lugar a un sistema que puede hacer una tarea prácticamente a la perfección y en un tiempo mucho menor a lo que un ser humano podría realizarlo.
Dicho esto, Github Copilot es una inteligencia artificial que al igual que en la definición que di, toma como entrada, todos los repositorios de código disponibles en github y aprende a escribir código basado en esto. Obviamente para que una inteligencia artificial pueda funcionar debe saber cuál es la tarea que debe realizar, en el caso de esta, debe saber que tipo de programa o código debe hacer, esto sería como el contexto del texto que la IA quiere escribir. Por lo que entonces podríamos decir que Github Copilot escribe código basado en un contexto específico dado por el programador.
¿Esto significa que es el final de los programadores?
No, yo creo que no, al menos en el corto y mediano plazo, basado en los ejemplos que vi esto es un programa que te permite escribir bloques de código basados en comentarios, nombres de método, inicios de código, etc. Pero en mi opinión un código, al menos uno hecho para funcionar para una empresa tiene 2 componentes. Una es obviamente el código y el algoritmo, que podríamos decir que son un conjunto de condicionales, variables, bucles y funciones y el otro, es la inteligencia del negocio, lo que esto quiere decir es que el programador debe conocer y entender un requerimiento desde el punto de vista del negocio para hacer que el código se adapta de manera adecuada a este.
Es por esto que digo que al menos en el corto y mediano plazo, creo que no va a reemplazar a los programadores, en el largo plazo, pues no se… consideró que no soy lo suficientemente conocedor de la inteligencia artificial como para cuestionar los límites de lo que es o no es posible con esta por lo que las limitaciones que plantea en el párrafo anterior puede que ya no existan en un futuro más lejano. Sea como sea la vida del programador siempre ha sido una vida de adaptaciones y esto es algo mas a lo que tendremos que adaptarnos.
¿Qué depara el futuro?
Aunque la IA que ya es una realidad no reemplace a la profesión del programador definitivamente cambiará la manera en cómo se hacen las cosas, desde entrevistas laborales, evaluación de perfiles técnicos hasta el cálculo de tiempos para hacer un desarrollo determinado, pero en mi opinión los cambios serán para bien pero siempre debemos estar listos para adaptarnos a las nuevas cosas que nos depare el futuro.