|
En un momento en el que todos tratamos de adivinar cómo la inteligencia artificial remodelará el sector informático, no tengo ni idea de cuántos programadores harán falta dentro de diez años ni qué harán exactamente, pero tengo bastante claro que Justine Tunney seguirá teniendo trabajo.
Porque Tunney es de ese tipo de programadores que no se limita a crear tecnología a partir de las piezas existentes, sino que crea nuevas piezas que cambian las reglas con las que podemos jugar. Nosotros y la IA.
Creció como hija de una madre adolescente que, para criarla, tuvo que recurrir a subsidios y comedores sociales. Sufrió acoso escolar y hasta que no puso las manos sobre un ordenador no sintió que podía ser buena en algo.
Empezó a publicar software siendo aún una adolescente y siguió aprendiendo a programar por su cuenta hasta convertirse en una experta en seguridad informática.
Quizás fue esa trayectoria poco convencional lo que la hizo cuestionarse algo que la industria ha aceptado sin más: que, para distribuir y ejecutar software en distintos sistemas operativos, necesitemos contenedores, máquinas virtuales o instaladores específicos. Tunney se preguntó por qué un programa no podía volver a ser simplemente un archivo.
Tras dejar Google en 2018, Tunney se concentró en sus proyectos open source hasta que en 2020 hizo público su trabajo. Permitidme explicarlo de tal forma que cualquiera pueda entender la magnitud de lo que hizo Justine.
Cuando «compilas» un programa, conviertes el código en un conjunto de ceros y unos que un procesador determinado puede entender y ejecutar. Pero eso no basta: cada sistema operativo espera encontrar esas instrucciones dentro de un formato de fichero distinto y tiene mecanismos propios para realizar tareas básicas, como abrir archivos, mostrar texto o establecer una conexión de red.
Tunney atacó las dos barreras. Creó APE, un formato que utiliza varios trucos para que el mismo archivo sea un ejecutable válido ante Windows, macOS y distintos sistemas Unix. Y Cosmopolitan libc, una implementación de la librería estándar de C que, al compilar un programa, lo dota de la capacidad de adaptar las llamadas del programa, según el sistema operativo en el que se esté ejecutando.
APE conseguía que distintos sistemas operativos reconocieran y ejecutaran el programa. Cosmopolitan, que el programa pudiera interactuar con cada uno de ellos.
APE y Cosmopolitan eran una proeza técnica, pero todavía podían resultar demasiado abstractas. Para demostrar sus posibilidades, Justine creó redbean, un servidor web construido sobre ambas que puede ejecutarse en varios sistemas operativos como un único archivo autocontenido.
Y, tres años más tarde, lanzó llamafile, la combinación de llama.cpp y Cosmopolitan que permite, ni más ni menos, que cualquiera pueda ejecutar un modelo de lenguaje o LLM en su propia máquina.
Simplificando mucho, un modelo no deja de ser un enorme conjunto de números. Para poder recibir un input y devolver un output, necesita un motor de inferencia como llama.cpp, un programa escrito principalmente en C y C++. Al encapsular modelo y motor con Cosmopolitan, se obtiene un fichero que puede ejecutarse en distintos sistemas operativos sin ninguna configuración. Sin instalar Python, ni PyTorch, ni preparar un entorno de ejecución específico.
Justine había conseguido convertir la inteligencia artificial en un fichero que puedes copiar en un pendrive y ejecutar en tu ordenador con un simple doble clic. Sin embargo, casi nadie la conoce.
Y quizás deberíamos hacerlo. La carrera de Tunney es fascinante, no ya por su virtuosismo técnico, sino porque su aproximación a la programación resulta especialmente relevante en un momento en el que todos nos preguntamos cómo moldeará la IA el rol del programador.
Si la capacidad de producir código ya no nos define ni distingue, ¿qué nos hace programadores? ¿La creación de tecnología?
Tampoco. Si acatamos la definición de tecnología que nos da la RAE, «el aprovechamiento práctico del conocimiento científico», cualquiera que combine y configure conocimiento preexistente está creando tecnología.
¿Acaso no está creando tecnología el que combina una placa de Arduino y componentes electrónicos para automatizar el riego de su jardín? ¿Acaso no está creando tecnología el que combina y configura software existente para gestionar el inventario de un almacén?
Tiene que haber algo más y, quizás, Justine Tunney nos esté mostrando el qué. Porque no se limita a construir una solución para un problema a partir de piezas existentes, sino que convierte limitaciones en piezas nuevas que todos podemos usar.
Tecnología que no resuelve necesariamente las necesidades de un usuario final, sino que permite que otros puedan resolverlas de formas que antes no estaban disponibles. Tecnología habilitadora.
No tengo ni idea de si dentro de diez años llamaremos programadores a quienes construyan software, pero sí creo que mientras haya alguien que cuestione los límites asumidos, descifre cómo funciona la tecnología a bajo nivel y construya herramientas que aumenten la capacidad de los demás, seguirá habiendo programación.
Mientras haya alguien que, como Justine Tunney, se pregunte cómo meter una inteligencia artificial en un pendrive, seguirá habiendo programación.
|