Esta semana, DeepMind ha sacado a la luz resultados de otro de sus proyectos que prometen dejar huella en nuestra industria.

Ya vimos grandes avances en el campo de la inteligencia artificial con los proyectos de GPT-3 y Alphafold2 durante el año pasado.

Este año, en la primera semana de febrero ya hemos empezado fuerte con AlphaCode.

Lo que ha ocurrido

En el mundo de la tecnología existen competiciones internacionales en el que se publican retos de programación a resolver en un tiempo limitado en los que miles de ingenieros y desarrolladores de muy alto nivel tratan de generar el algoritmo correcto para dar respuesta al problema planteado.

De esta manera se generan rankings y se otorgan premios a los desarrolladores más hábiles que a su vez, en muchas ocasiones, son abordados por equipos de RRHH de gigantes tecnológicos para incorporarlos a sus equipos.

AlphaCode, ha sido entrenado con muchas de éstas pruebas generadas en estas competiciones. Este es el esquema que han publicado su nota de prensa.

[Imagen] -

Como entrada, AlphaCode recibe un problema bien definido y escrito a modo de enunciado por seres humanos.

Utiliza todos los repositorios de código en Github utilizados por estos desarrolladores para aprender como se genera una pieza de código capaz de resolver el problema descrito en inglés por un ser humano.

De esta manera se obtiene un dataset capaz de formar a una inteligencia artifical en el arte de la programación.

El resultado ha sido muy bueno, aunque aún le queda un largo camino por recorrer.

AlphaCode es capaz de recibir la misma descripción de un problema que un desarrollador y se quedaría por encima del 50% de los participantes en el ranking de competiciones de programación.

Resultado nada malo si contextualizamos entendiendo que estas competiciones de programación normalmente son frecuentadas por programadores de muy alto rendimiento hoy en día.

Futuro

Ahora trasladémonos 10 años al futuro. Un futuro en el que AlphaCode sea una realidad en el día día. Suelo mirar siempre a 10 años vista porque estos cambios suelen suceder rápido, pero hasta que se masifican y esntandarizan les lleva un tiempo.

En 10 años es posible que si AlphaCode evoluciona favorablemente y a su calor se van sucediendo otros proyectos apoyados por grandes comunidades, podríamos llegar a un punto en el que no sea necesario programar.

Si una máquina es capaz de programar, probablemente se hagan proyectos para que las máquinas escriban en los lenguajes más eficientes posibles, por lo que la amplia gama de lenguajes de programación existentes podrían tender a un subconjunto menor.

Las aplicaciones ya desarrolladas, deberían seguir manteniéndose probablemente por humanos al no haber sido inicialmente dearrolladas por máquinas y posiblemente tener lógicas dificilmente acoplables a los paradigmas de programación máquina.

Esto nos llevaría a una gran divergencia entre bases de software de nueva creación vs. las ya existentes.

Los nuevos proyectos se harían con código desarrollado por máquinas lo que aceleraría muchísimo la evolución software de nuevos productos digitales vs. las bases de código legacy que haya que seguir manteniendo “a mano” y con lenguajes no soportados para generarse de manera automática.

Veríamos un cambio brutal en el tipo de trabajo a desarrollar por desarrolladores de software. Se pondría en relevancia la importancia de una buena definición de requisitos y de un buen conjunto de pruebas para validar el correcto funcionamiento de un código desarrollado por una máquina.

Los programadores evolucionarían hacia un rol más de definición detallada de requisitos y de gestión de batería de pruebas.

Podríamos visualizar fácilmente un aumento de las tecnologías no-code en la que no se necesite una formación técnica para poder crear software de una manera más avanzada, utilizando el lenguaje natural.

Todo esto no parece descabellado, aunque si todavía lejano.

Este avance tecnológico me resulta muy paradójico… ¿Podría ser el gremio informático el primero en crear una tecnología capaz de mandar a todo su gremio al paro?