GitHub Copilot es un asistente de inteligencia artificial (IA) para código, fue creado de manera colaborativa entre Microsoft y OpenAI. Utiliza modelos de ML o aprendizaje automático para generar sugerencias basadas en el contexto en el que se encuentra trabajando la persona desarrolladora. Cuenta con una sólida integración con IDEs y utiliza una base de código existente y un contexto de editor para crear sugerencias. A pesar de ser catalogado como "tu pareja de programación de IA", no podemos decir que hace "pairing", probablemente lo describiríamos como una especie de Stack Overflow sobrecargado y sensible al contexto. Cuando predice correctamente lo que un desarrollador está tratando de hacer, puede ser una herramienta poderosa para hacer las cosas. Sin embargo, como todas las IA basadas en modelos de lenguaje de gran tamaño (Large Language Models), tiene una tendencia a alucinar con el uso de API posibles pero inexistentes y puede introducir errores a través de algoritmos ligeramente defectuosos. Hemos tenido éxito en la generación de código a nivel de línea, bloque y método, así como en la creación de pruebas o configuraciones de infraestructura. Curiosamente, funciona mejor cuando utilizas buenas prácticas de nombres, por lo que promueve un código más comprensible.
Las capacidades de las herramientas de IA avanzan rápidamente y creemos que es sensato que las organizaciones las prueben. Algunos argumentos de venta a favor de Copilot afirman ganancias en eficiencia muy altas, pero seguimos escépticos: después de todo, escribir código no es lo único a lo que los desarrolladores dedican su tiempo, y es claramente difícil medir la productividad del desarrollador en primer lugar. Dicho esto, Copilot es una herramienta bastante económica; si ofrece alguna ganancia de productividad, probablemente valga la pena. Copilot X, -en versión preliminar al momento de escribir este texto-, ofrece funcionalidades e integración adicionales dentro de un flujo de creación de software. Copilot tiene una oferta "para empresas" que provee más claridad sobre los problemas de propiedad intelectual, así como la capacidad de administrar las funciones de las herramientas de forma centralizada en toda la organización. Creemos que estas características son críticas para su adopción empresarial.
