En aquest article, explorarem com GitHub Copilot, una potent eina d’intel·ligència artificial, està transformant el desenvolupament d’aplicacions. El desenvolupament d’aplicacions sempre ha tingut una faceta artística o creativa, especialment en funcionalitats complexes. No obstant això, també inclou seccions repetitives i funcionalitats bàsiques que requereixen menys esforç, però han de completar-se com la resta del projecte. Gràcies a l’aparició d’intel·ligències artificials més potents i capaces de realitzar anàlisis més profunds, GitHub Copilot permet combinar el desenvolupament amb la IA per millorar els temps i facilitar la feina.
GitHub és un dels portals més importants del món per compartir codi obert i va ser adquirit per Microsoft el 2018. Com a part del seu impuls cap a noves solucions d’intel·ligència artificial, Microsoft ha desenvolupat GitHub Copilot.
GitHub Copilot es basa en Codex, un nou sistema d’IA creat per OpenAI, la mateixa organització darrere de GPT-3, la base de ChatGPT. No obstant això, en aquest cas, Codex està entrenat exclusivament en codi per a desenvolupaments. Es basa en el codi disponible a GitHub.
GitHub Copilot és una IA dissenyada per a programadors. Proposa codi basat en el projecte actual i el text introduït en iniciar el desenvolupament, com ara comentaris o noms de classes o funcions. Aquest servei és de pagament, amb una tarifa de 10 €/mes per a usuaris particulars. I 19 €/mes per usuari per a empreses. No obstant això, ofereix un període de prova gratuït de 2 mesos.
Un cop contractat, Copilot funciona mitjançant un connector o extensió que s’afegeix a l’IDE utilitzat per al desenvolupament, amb suport per a la majoria dels principals IDE actuals. Per exemple, en Visual Studio, caldria afegir l’extensió de GitHub Copilot.
Un cop afegida l’extensió, s’ha d’iniciar sessió amb un compte de GitHub que tingui activada la subscripció de Copilot. Després de l’inici de sessió, Copilot analitza el codi del projecte actual i, posteriorment, el connector pot generar codi de proposta completament nou, sense copiar-lo d’altres llocs. En funció de cada cas, pot proposar diverses alternatives addicionals per triar.
El programador ha de revisar aquest codi proposat per verificar si s’ajusta al que realment vol aconseguir. Llavors, pot acceptar o rebutjar el codi. En cas de rebuig, Copilot pot oferir noves solucions. A mesura que avança el projecte, Copilot aprèn i millora les propostes presentades.
Les extensions solen permetre habilitar o deshabilitar Copilot. Si es desactiva, preguntarà si es vol desactivar les suggeriments de forma global o només per al llenguatge de l’arxiu que s’està editant actualment.
Tot i que Copilot ha estat entrenat en molts tipus de llenguatges, funciona especialment bé per a Python, JavaScript, TypeScript, Ruby, Go, C# i C++. Donada la naturalesa de la IA, a mesura que realitza més prediccions i es accepta o rebutja el codi, Copilot aprèn més conceptes i pot proporcionar solucions més precises.
Actualment, Copilot també inclou mòduls específics per detectar patrons de codi insegur i evitar la introducció de vulnerabilitats.
Copilot és una tecnologia relativament nova. Tot i que el progrés és ràpid, encara necessita aprendre més. Per proposar cada vegada millor codi i que les seves propostes siguin més encertades. En tasques simples com noves classes i controladors, resulta molt encertat. Pot accelerar el desenvolupament. No obstant això, en tasques més complexes o en arreglar errors, potser encara no acabi de trobar solucions correctes.
En qualsevol cas, els desenvolupadors que l’han provat coincideixen que els permet centrar-se en tasques més motivadores i complexes. També els ajuda a ser més productius i estalviar temps en tasques repetitives i senzilles.
A ITEQUIA, hem realitzat una prova pilot de Copilot amb un petit grup de 6 desenvolupadors. Aquest equip està format per persones que treballen en diferents projectes amb diferents tasques i llenguatges. Tot i que la majoria utilitzen .NET, React o Angular.
Durant la prova, es van anotar les tasques realitzades pel grup, juntament amb l’estimació inicial del temps que haurien d’haver pres i el temps real que es va trigar a completar-les. Els resultats mostren un percentatge d’estalvi de temps significatiu:
Mes | Percentatge d’estalvi de temps | Hores guanyades |
---|---|---|
Març | 5% | 48 hores |
Abril | 2% | 19,2 hores |
Maig | 3,5% | 33,6 hores |
Juny | 8,7% | 83,52 hores |
Per entendre què representa aquest percentatge: Partint del fet que en un mes tenim aproximadament 160 hores per planificar per a cada desenvolupador. El percentatge d’estalvi de temps representa quantes d’aquestes 160 hores hem pogut estalviar en realitzar les tasques planejades utilitzant Copilot.
En general, hem pogut detectar dos tipus de comportaments en funció del tipus de desenvolupament:
Dins del grup de prova, a l’abril es van realitzar sobretot correccions i al juny hi ha hagut més desenvolupaments nous. També hem detectat que no tots els desenvolupadors han aconseguit donar-li ús. Això depèn del projecte en què treballen i de la informació donada a Copilot perquè generi codi. L’ús de Copilot, igual que qualsevol altra eina tecnològica, no sempre és trivial. Requereix un període d’adaptació i aprenentatge.
Aquest és un petit exemple de les tasques realitzades i el resultat de les mateixes:
Llenguatge | Hores Estimades | Hores Reals | Comentaris | Tipus de tasca |
---|---|---|---|---|
C# | 12 Hores | 5 Hores | Mètode per processament de respostes a servei SOAP. Serialització / Deserialització XML. | Desenvolupament |
C# | 2 Hores | 2 Hores | No ajuda perquè el temps dedicat és major per investigar l’error que per solucionar-lo. | Defecte |
YAML | 24 Hores | 12 Hores | Tot i que necessita un cert temps d’aprenentatge inicial, una vegada que Copilot disposa d’exemples suficients per treballar, la creació de documentació es converteix en un procés on només cal proporcionar-li uns inputs concrets perquè realitzi la major part del treball pesat, com ara la generació d’estructures i condicions… | Documentació |
C# | 24 Hores | 4 Hores | Utilitzant la documentació prèviament generada a Swagger, hem creat ràpidament els models de dades i entitats relacionades en proporcionar els components associats com a input. Notem que GitHub Copilot en Visual Studio 2022 ofereix resultats més precisos que en Visual Studio Code i evita bucles infinitos en la generació de documentació. | Desenvolupament |
javascript | 3 Hores | 2,5 Hores | Ens ha ajudat a detectar i corregir una cadena excessivament llarga per a una graella de Kendo. | Defecte |
javascript | 16 Hores | 12 Hores | Ajuda a completar funcions en omplir paràmetres i facilita les consultes de LINQ. A més, en afegir tota la funcionalitat en crear un nou endpoint, et suggereix la mateixa estructura que en els altres casos. | Desenvolupament |
React TypeScript | 2 Hores | 2 Hores | Evoluciona amb el temps i cada vegada és més precís. No obstant això, per a moltes tasques, no hi ha diferència en el temps d’implementació entre fer servir Copilot i no fer-ho. | Desenvolupament |
Copilot és una eina molt potent. Permet centrar-se en desenvolupaments complexos i ajudar en el desenvolupament més genèric i avorrit, aconseguint millors temps. Aquesta eina encara està en fases inicials. Necessita més temps per aprendre, millorar i proposar solucions correctes en tot cas.
Els desenvolupadors necessitaran un cert temps d’ajust per aprofitar-la bé. De moment, no sempre dóna resultats positius en qualsevol tasca. No obstant això, és clar que les avantatges en desenvolupaments nous són molt grans. Pot agilitzar molt les tasques inicials i els projectes.
Per utilitzar-la en correccions i solucions pot ser necessari més temps. També és important que segueixi evolucionant. No obstant això, les possibilitats que ofereix són molt bones i esperem guanyar temps mitjançant un ús adequat.
Estàs llest per portar el teu desenvolupament al següent nivell amb GitHub Copilot? Contacta’ns avui mateix per descobrir com aquesta potent IA pot beneficiar el teu equip i projectes! No perdis l’oportunitat de provar GitHub Copilot i experimentar la diferència en el teu flux de treball. Estem aquí per ajudar-te a aprofitar al màxim aquesta innovadora eina!