COMO EVOLUCIONÓ LA PROGRAMACIÓN DE COMPUTADORAS EN LOS ÚLTIMOS 30 AÑOS

32

El salto desde la “creación de gestión de datos en tablas” a “orquestar experiencias en tiempo real” implica una evolución enorme que se dio en las últimas tres décadas. Como llegamos a manejar IA cuando pretéritamente programábamos en un PC de escritorio para gestionar bases de datos

Seguramente los memoriosos programadores de códigos recuerdan las horas y horas que demandaba crear y compilar un programa en aquellos lenguajes que se utilizaban en los años 90 y se vendían como pan caliente para los desarrolladores. Pero como bien lo predijeron una vez en un programa de televisión que fueron invitados los grandes gurús de la informática, Bill Gates y Steve Jobs, era urgente una depuración de aquella “selva informática” donde había al menos más de una docena de lenguajes dando vueltas por todo el mundo.

Hoy en día Android es el sistema operativo móvil de Google basado en el núcleo Linux. Diseñado para pantallas táctiles, es la plataforma líder a nivel mundial presente en teléfonos inteligentes, tablets, relojes (Wear OS), televisores (Android TV) y vehículos (Android Auto). Al ser de código abierto, marcas como Samsung, Xiaomi y Motorola lo adaptan con sus propias interfaces (como One UI), brindando una gran capacidad de personalización y herramientas de inteligencia artificial integrada.

Mientras que iOS es un sistema operativo móvil propietario de apple desarrollado por Apple Inc. Originalmente desarrollado para el iPhone (iPhone OS), después se utilizó en dispositivos como el iPod touch y el iPad. Desde el 2019 el iPad pasó a tener otro sistema operativo, esto para diferenciarlo del iPhone, aunque iPadOS se basa en éste con diferencias sustanciales que lo diferencian del mismo.

Y pensar que todo comenzó con el DOS. ¿Una avivada de Bill Gates? pues sí. La venta a IBM de ese sistema operativo debe ser uno de los momentos más importantes en la historia del pensamiento, como bien lo definió uno del empleado de Microsoft en ese momento. (Ver Los piratas de Silicom Valley).

Aunque habría que retroceder un poco más para dimensionar semejante salto hasta hacernos creer que nuestros dispositivos actualmente tienen una especie de entidad dentro ya que responde como un humano porque lograron imitar el pensamiento. Es Ciencia no es magia, aunque lo parezca.

De “todo en uno” a “microservicios”

Antes solo había un solo programa (monolito) que hacía los ABM (Altas, bajas, modificaciones). Eran la piedra angular de la facturación y reportes en las empresas. Ahora tenemos apps divididas en docenas de microservicios (ej: uno para login, otro para pagos, otro para recomendaciones). Se comunican por redes, no por funciones internas.

Los paradigmas pasaron de procedural a multi-paradigma; cuando antes estaban los lenguajes como COBOL, Pascal, C puro (instrucción por instrucción). Ahora Python, Java, C# mezclan orientación a objetos, funcional y reactiva. Escribes “qué” en vez de “cómo” (ej: filter() map() en vez de bucles for).

La “nube” cambió la memoria

Por aquellos tiempos de la programación que solo era potestad de los cerebritos de Silicón Valley, los datos vivían en discos locales o mainframes pero ahora hay bases de datos distribuidas (AWS, Firebase). Sucede que el código no guarda estado; todo es efímero y se escala automáticamente con la demanda.

Las interfaces de terminal a eventos pasaron de pantallas de texto con campos fijos a interfaces táctiles, animaciones, voz. Pero parece que nadie lo ha notado más que los programadores de aquellos tiempos. La programación maneja eventos asíncronos (toques, gestos, notificaciones push) y debe responder en milisegundos.

La seguridad y concurrencia hizo que antes exista un usuario a la vez o pocos terminales; ahora son millones de usuarios simultáneos. Se programa con hilos, async/await y cifrado desde el diseño (no como añadido).

Ni hablar de las herramientas. Pasamos de editores a IDEs con IA cuando antes se escribía en editores básicos (vi, Notepad). En la actualidad tenemos entornos como VS Code con autocompletado inteligente, depuradores gráficos, y asistentes que generan código (GitHub Copilot).

Del CD-ROM a despliegue continúo

A fines del Siglo XX se lanzaba una versión cada 6 meses en disquetes mientras que ahora se actualiza varias veces al día (CI/CD) sin que el usuario note, gracias a contenedores (Docker) y orquestadores (Kubernetes).

Pero ¿qué pasó con lo ABM? Siguen existiendo pero son “invisible”. Esa cantidad ingente de códigos que se guardaban en cajas y cajas de disquetes es solo un recuerdo de aquellas épocas. Hoy cualquier app tiene ABM detrás (dar de alta un usuario, modificar perfil, dar baja), pero eso es solo el 10% del código. El 90% es: sincronización en tiempo real, machine learning para recomendaciones, geolocalización, notificaciones, integración con APIs externas (pagos, maps, redes sociales).

En esencia pasamos de “escribir instrucciones para una máquina” a “orquestar un ecosistema de servicios en la nube, con interfaces reactivas y seguridad extrema”. El ABM era la piedra filosofal de los 90; hoy la piedra filosofal es “escalabilidad y experiencia de usuario”.

Es inquietante plantearse que todo esto pasó en los últimos 30 años, entonces ¿que podría pasar en los próximos 30?