GitHub, el mayor repositorio de código abierto, propiedad de Microsoft desde junio de 2018, ha publicado varios estudios acerca del uso de su asistente de inteligencia artificial para el desarrollo de software, GitHub Copilot, con resultados francamente buenos.
Y si bien podrían ser considerados en cierto sentido «estudios de parte» por provenir de quien es el dueño de la herramienta utilizada, la realidad es que desde el punto de vista de los datos tienen bastante poca discusión: en primer lugar, el 92% de los desarrolladores utilizan ya activamente herramientas de inteligencia artificial a la hora de escribir código: como era de esperar, el desarrollo de software se convierte en la auténtica vanguardia del uso de inteligencia artificial, el frente de batalla en el que podemos estudiar su impacto sobre las actividades humanas.
Según la compañía, utilizar su herramienta mejora la calidad del código generado: «el código escrito con GitHub Copilot es significativamente más funcional, legible, confiable, fácil de mantener y conciso». En efecto, los resultados obtenidos por la compañía en sus análisis muestran que en general, el código creado con GitHub Copilot tiene mayor funcionalidad y legibilidad, es de mejor calidad y recibe mayores tasas de aprobación. Los desarrolladores con acceso a GitHub Copilot obtienen un 56% más de probabilidades de aprobar las diez pruebas planteadas en el estudio, lo que indica que GitHub Copilot ayuda a esos desarrolladores a escribir código más funcional por un amplio margen.
En las revisiones a ciegas, el código escrito con GitHub Copilot mostró tener significativamente menos errores de legibilidad de código, lo que permitió a los desarrolladores escribir como media un 13.6% más de líneas de código sin encontrar problemas de legibilidad. La legibilidad mejoró en un 3.62%, la confiabilidad en un 2.94%, la capacidad de mantenimiento en un 2.47%, y el nivel de concisión en un 4.16 %, porcentajes todos ellos estadísticamente significativos. Los desarrolladores obtuvieron un 5% más de probabilidades de aprobar el código producido mediante GitHub Copilot, lo que da lugar a que ese código esté listo para fusionarse antes, acelerando el tiempo para corregir errores o para implementar nuevas funcionalidades.
Además, la herramienta aparentemente ayuda a los desarrolladores a escribir código hasta un 55% más rápido, lo que hace que el 88 % de los desarrolladores se sientan más concentrados y el 85% se sienta más seguro del código generado.
Otros estudios, sin embargo, son más críticos con este tipo de herramientas, y afirman que los desarrolladores con acceso a Copilot tuvieron una tasa de errores significativamente mayor, posiblemente derivado del nivel de experiencia no solo en desarrollo de software, sino en el propio uso de la herramienta. En otro estudio, se describió una presión decreciente hacia la calidad del código como resultado del uso de la herramienta.
Este tipo de conclusiones contradictorias, en retrospectiva, tienden a ser bastante habituales en herramientas en las primeras fases de su despliegue. De una u otra manera, todo indica que en la profesión más cercana al límite en cuanto a su nivel de incorporación de tecnología, la adopción de este tipo de herramientas es no solo masiva, sino que aparentemente positiva en cuanto se superan unos ciertos niveles de familiaridad con el uso, y que, por otro lado, el incremento de productividad no parece corresponderse con una disminución de la necesidad de profesionales – aunque el caso de los desarrolladores, habitualmente en altísima demanda en todos los mercados de trabajo, puede ser escasamente significativo en ese sentido.
This article is also available in English on my Medium page, «How is AI impacting the world of software development?»
Muy de acuerdo con todos estos datos, incluso percibo que esos porcentaje podrían estar más altos.
Pero, a mi como programador, lo que mas me interesa de esta herramientas como Copilot es la capacidad de mejorar el código y ver todas las posibilidades.
Por ejemplo, en un proceso de validación de datos analizar posibles alternativas, muchas de ellas que los programadores tal vez las descubrimos a futuro, con el paso a producción y en entorno reales, esta herramienta «se adelanta a posibles situaciones».
Increíble, es poesía !!
¿Hay que volver a recordar las estadísticas de Colgate y porque esos datos de Wakefield Research no son ciertos?
No, el 92% de lo programadores no usan Copilot.
(entre otras cosas, también porque hay mejores asistentes de código)
–
Tengo la intuición de que los derechos miranda también aplican en el bendito WhatsApp.
No dice que el 92% usan copilot, dice que el 92 usa un asistente, lo cual si es creíble. Conozco gente que programan solo con chat gpt. Así que en parte es verdad.
Ayer estuve en una clase del grado medio de mantenimiento de sistemas informáticos, con chavales de entre 16 y 20 y pocos años. Todos, sin distinción y sistemáticamente, usaban algún tipo de asistente para generar código.
¿No se dan cuenta que esto hará más vagos a los programadores por malacostumbrarlos a que se lo den todo hecho? Y copiar y pegar no es saber programar, todos podemos hacer eso, pero si no usan la cabeza mal vamos. Lo ideal en mi opinión es hacerlo todo como antaño y solo preguntar a la IA por algo que estás atascado, tal vez incluso reemplazando las búsquedas por google si te ahorra tiempo. Así se distinguirán a los verdaderos programadores.
¡Alguien con criterio!. Pienso lo mismo, es una tentación usarlos ya que el ser humano es vago por naturaleza. Yo me siento mejor programando por mí mismo que usar algo hecho por una IA.
Esto es lo que dice BBVA al respecto de la IA.
Como viejo informático, y sin experiencia aun en programar con ayuda de la AI, digo de todo corazón ¡Bien venida la AI!
Programar es la parte rollo de la informática, si una herramienta nos libera, aunque solo sea en parte, de esa tarea,… fenomenal.
¿Que puede reducir el número de programadores,? Pues si, …. Pero hay tantas cosas por informatizar que no se hacen por el coste en programación, que solo hara liberar personal para realizar labores mas divertidas.
«escribir código más funcional» (EDans).
Es la madre del cordero, lo haga con ayuda de un dios (artificial) o con la ayuda del porquero.
Hacer que alguien o algo funcione es lo que nos diferencia de los animales irracionales. A ellos les llega el hábito de que tengan un nivel de eficiencia mínimo. Si les vale el palito para coger hormigas, por qué molestarse en buscar un método más sofisticado. No necesitan evolucionar para sobrevivir.
Pero el ser inteligente, ese que no debía parar de evolucionar…
Por esos los funcionarios son como son (los que menos funcionan… en «función» de su cometido) y siguen aferrados a su técnica del escriba egipcio… pero, eso sí, han descubierto la silla ergonómica… que les ha levantado el culo al tiempo que les proporciona mejores momentos de relax mental (eso sí, muy siliconado). Pero no se piensa mejor, por tener el culo más levantado. Y sí no, que le pregunten a la Kardashian.
Lo uso en el trabajo y creo que es una buena herramienta pero no la panacea. Y lo más importante, hay que saber programar para usarlo. Tanto para escribir qué quieres (y siempre con programas sencillos), como para validar que lo que te ha dado funciona correctamente, ya que no siempre es así.
El código que me generan los asistentes es buenísimo para darme una idea de como lo estructuraría la máquina. A partir de ahí decido si es mejorable o no.
Algo que hace muy bien la máquina es ayudarme a escribir cosas de forma más concisa o agregando comentarios cuando me da pereza ponerlos, hahaha
Perdón por el auto-comentario. Otra cosa que hacen bien es «fuera» del código, escriben una documentación genial a partir del código para que pierda menos tiempo en Word/PPTx
Analiza el código con Sonarqube. Es buenísimo en muchos aspectos pero Sonarqube genera unas cuantas «issues» cuando lo analiza. No se me había ocurrido hasta hoy pero la próxima vez voy a pedirle a chatgpt que me genere el código con 0 «issues» en el análisis de Sonarqube. ¿Qué saldrá de ahí?
A raiz de este estudio por llamarlo de alguna manera, (lo obvio si tienes una herramienta que te quita trabajo la usas… ) tampoco hay que ser un gurú de MS para esa conclusión, me he acordado de un escrito famoso de una vieja gloria, Bill Joy,
«A medida que la sociedad y sus problemas se van haciendo más complejos, y las máquinas más inteligentes, la gente irá dejando sus decisiones en manos de las máquinas, simplemente porque las decisiones tomadas por máquinas obtendrán mejores resultados que las tomadas por humanos. Con el tiempo podría llegarse a una fase en la cual las decisiones necesarias para mantener el sistema en funcionamiento sean tan complejas que los seres humanos no puedan tomarlas de forma inteligente. En esta fase, las máquinas tendrán de hecho el control. La gente no podrá apagar las máquinas porque dependerán tanto de ellas que apagarlas equivaldría a un suicidio.»
https://www.pruebayerror.net/por-que-el-futuro-no-nos-necesita-bill-joy/
¿Me recuerda a mi solo a lo último de Harari…?
PAM…!!! +1000
ps.- Mas de un informatico se cagara en mis muelas, pero seguire insistiendo: el «informatico» que precisa de estas herramientas, no tiene creatividad, y si la tuvo, la perdera…
Al día de hoy, como estas IAs son aún «torpes» pues no se puede prescindir del bicho.
Pero la evolución va a ser como la del ajedrez o el go ( de hecho me imagino que esas tools ya existen pero se están conteniendo)
https://www.xataka.com/inteligencia-artificial/inteligencia-artificial-no-solo-nos-gana-al-ajedrez-ahora-nos-muestra-tambien-como-mejorarlo
https://www.arte.tv/es/videos/108498-000-A/kasparov-rebelde-y-rey-del-ajedrez/
https://www.technologyreview.es/s/9846/alpha-zero-la-inteligencia-artificial-alienigena-que-domina-tres-juegos-distintos
Lo de Deep Blue… es agua pasada
Hoy en día NADIE gana a la IA en estos juegos de estrategia con IAs como Alpha Zero… Si se pueden aplicar para «lo de las proteinas»,… la programación es como esa película «Dias Contados»
Matiz: Yo no estoy diciendo que la IA no sirva o no haga bien su trabajo. Estoy diciendo que acostumbrarse a ella, hará perder habilidades a los programadores.
El mercado/entorno los pondrá en su lugar. Así como los ERP no reemplazaron a los contadores (sino que estos por conocer el medio, se volvieron más estratégicos) los verdaderos programadores, aquellos que de verdad saben «conectar los puntos» se volverán más estratégicos y necesarios.
Os propongo un reto a los que programáis con los asistentes.
Este verano, Gorki dijo algo así, como si no había una función para dejar de ver comentarios en el blog de determinados comentaristas (sin duda iba por mi). Yo le di la solución, puesto que (mucho) tiempo atrás, me encontré en la misma situación. Instalar GreaseMonkey en el navegador y hacer un script para tal efecto. Le hubiera dado el script directamente, pero, ya que siempre nos cuenta sus hazañas como programador, pensé que lo haría él solo, aunque fuera consultando a un asistente. (Solo son 12 líneas de código)
Paralelamente, quise probar el mío de nuevo, y vaya… ya no funcionaba. Imagino que por cambios en la forma en que WordPress genera la parte de comentarios, o del propio Theme. Como hablábamos en esos tiempos sobre la efectividad de dichos asistentes, empecé con ChatGpt. No supo. Ninguna de sus propuestas funcionaba y cada vez las enrevesaba más. Probé con otros, y tampoco. (tampoco dedique demasiado tiempo, una tarde entera).
Como Gorki sigue viendo (y contestando) mis respuestas, deduzco que tampoco lo consiguió (si es que lo intentó).
Ahí está el reto: pedidles a vuestros asistentes que os genere el script. A ver que tal. (insisto, son o deberían ser, doce líneas aprox.)
A mi juicio, cuando la Ai evolucione a mejor, quizá/es posible, que lleguemos a un punto que digamos que queremos que haga un programa y la máquina lo escriba.
Si llegamos a ello desaparecerán el 98 % de los programadores o señores que hoy escriben linea a linea con un lenguaje de programación, lo que el programa debe hacer. Algo parecido a lo que esta pasando con la Ai y la pintura, alguien escribe un «prompt» y la máquina produce una imagen.
No obstante, aun quedará la parte mas noble de la profesión el que alguien genere el prompt adecuado. Esto está ocurriendo en muchas profesiones, desde hace siglos no se precisan ascensoristas, basta con que selecciones el botón de la planta donde vas, ni se necesitan telefonistas, basta que marques el número correcto, y ya hay máquinas 3D que construyen viviendas, por lo que no se necesitan albañiles,
Si desparece la profesión de programadores, pues solo es un paso mas en la desaparición de copistas en monasterios, de telegrafistas, de mecanógrafas,…
Yo creo que hay un error de aproximación en el uso de la IA a través de prompts. Que la IA será cada vez más capaz de agilizar enormemente procesos, realmente lo espero, igual que se han ido automatizando tareas repetitivas todos estos años.
Pero es en la personalización, modificación al detalle y pulido donde el trabajo se lleva la mayor parte del tiempo, lo que implica necesariamente especialistas en cada sector tomando decisiones. Y si bien aquí seguramente la IA también pueda ayudar, no creo que sea capaz de saber exactamente todas tus necesidades a golpe de prompt, ni creo que sea la forma más ágil a nivel profesional.
El tiempo dirá, pero sigo pensando que el futuro de la IA no es sustitución, si no asistencia.
Asumo que no eres programador o no tienes conocimientos suficientes sobre el tema, para tener esa opinión. La función de un programador consiste en primera instancia en traducir la necesidad de un cliente en algo solucionable mediante uno o varios programas. Esa es la parte difícil que hace un buen programador. Además hay que hacerlo de manera exacta y concreta, a diferencia de lo que puede ocurrir con una imagen. Además, en muchos casos, un problema informático necesita la solución pasando por varios sistemas interconectados, que de momento queda bastante fuera del alcance de las IAs. Y lo uso en el trabajo, casi a diario. Lo dicho, una buena herramienta para el programador competente. Pero no va a eliminar el trabajo de puestos como el mío
Para Lua,
Es muy importante que el prompt sea directo y le ayude con la parte difici… la estructura de la página
El script que se carga comentarios, hecho en Tampermonkey para Chrome, Opera,…
GreaseMonkey creo que está muerto…
He elegido 3 nombres de comentaristas (los 2 primeros y el mio que tenia mucha cadena…).
Lo ha hecho ChatGPT en OneShot ( le he guiado en el prompt en la estructura de los comentarios, eso si…
// ==UserScript==
// @name Ocultar comentarios de usuarios específicos
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Oculta comentarios de usuarios seleccionados en una página web.
// @author Tú
// @match https://www.enriquedans.com/*
// @grant none
// ==/UserScript==
(function () {
'use strict';
// Lista de nombres de usuarios a bloquear
const usuariosBloqueados = ['Fernando', 'menestro', 'Buzzword'];
// Seleccionar todos los elementos de comentarios
const comentarios = document.querySelectorAll('li.comments-list-li');
comentarios.forEach((comentario) => {
// Buscar el nombre del autor dentro del comentario
const autor = comentario.querySelector('span.comment-author');
if (autor) {
const nombreAutor = autor.textContent.trim();
// Verificar si el autor está en la lista de bloqueados
if (usuariosBloqueados.includes(nombreAutor)) {
// Ocultar el comentario
comentario.style.display = 'none';
}
}
});
})();
PS: JS no lo domino en absoluto, de hecho es un lenguaje que no me gusta…. No conocía esta extensión y me ha llevado unas 2 horas… instalarla, saber lo que necesita, y que gepeto lo haga…
Bien por ti…. funciona…
es aproximadamente el mismo que me daba a mi. Habra aprendido ya de sus errores. (span) No consegui que lo aprendiera.
En su momento deje de usar el script (el mio), porque si bien es cierto que eliminaba el comentario del usuario en cuestion, tambien se cargaba los que le hubieran comentado… le pasa igual a este… XDD
Lo metiste a la primera? Con que prompt?
Zeroshot(a la primera) si…
Le puse el trozo de html de los comentarios… greasemonkey a mi no me funciona en Firefox, y he leido que estás discontinuado, en cuanto lo hayan bloqueado porque te pueden inyectar scripts maliciosos, apaga y vamonos
Prompt: (se come alguna linea por los tags, pero se entiende)
Quiero un script de Tapermonkey para filtrar los comentarios de una página web he extraido un ejemplo para que te sirva de base.
El script tendrá el nombre de algún usuario como por ejemplo Fernando, Menestro o Buzzword y el objetivo del script será que no se visualicen esos comentarios.
Si te fijas en la estructura de los comentarios están dentro de un tag y hay a su vez listas hijas(children) como respuesta a un comentario, yo diria que cada comentario empieza con una linea del tipo
y luego a continuacion con class="comment-text"> seguido del numero de comentario,... más adelante siempre hay
span class="comment-author">nombre_del_comentarista
y una caja div como por ejemplo
<div id="comment-text-511464"
Entonces el script debe contener los comentaristas a bloquear y su función es que no aparezcan en la visualizacion
En mi quinto o sexto intento, él mismo me pidio que le diera el codigo fuente, cosa que asi hice. Nah… como si lloviera…
Me alegro que haya avanzado en este tiempo.
Nota: Aunque Grease y Tamper parecen los mismo, no. El primero es Open. Cuando hice las pruebas lei que Violentmonkey es un sustituto mas potente (y open).
Hasta hoy, no conocia ninguno de los 2. Le he pasado el script a violentmonkey y funciona igual de bien, mira si este es totalmente open pues uno más ;-)
Al final parece que toda la ciencia es manejar el DOM y usar mi odiado JS…
A mi JS no me gusta nada, pero para estos scripts va de puta madre… por ejemplo, para no perder tiempo… mejor que lo de evitar ver un comentario, que te resalte los comentaristas que te interesan… XDDD
o poner el blog en modo oscuro… (mas descansado)
// ==UserScript==
// @name Modo Oscuro eDans
// @namespace http://tampermonkey.net/
// @version 1.0
// @description Modo Oscuro
// @author Yo
// @match https://www.enriquedans.com/*
// @grant none
// ==/UserScript==
(function () {
'use strict';
const estiloModoOscuro = `
body {
background-color: #000 !important;
color: #fff !important;
}
a {
color: #1e90ff !important; /* enlaces */
}
a:visited {
color: #551a8b !important; /* visitados */
}
.comment-content, .post-content {
background-color: #111 !important;
color: #fff !important;
border-radius: 5px;
padding: 10px;
}
`;
const styleElement = document.createElement('style');
styleElement.type = 'text/css';
styleElement.textContent = estiloModoOscuro;
document.head.appendChild(styleElement);
})();