Ada: El lenguaje secreto que influyó en la programación

Fuentes: The QuietColossus

Ada es un lenguaje de programación con una historia peculiar y una influencia significativa en el desarrollo de lenguajes modernos, a pesar de su relativa oscuridad en la industria. Su origen se remonta a la década de 1970, cuando el Departamento de Defensa de los Estados Unidos (DoD) enfrentaba una crisis de software: una proliferación de lenguajes incompatibles y difíciles de mantener que gestionaban sistemas críticos. En lugar de adoptar un lenguaje existente, el DoD emprendió un proceso exhaustivo de cinco años para definir los requisitos de un nuevo lenguaje, culminando en el documento 'Steelman'. Este documento no especificaba un lenguaje, sino las propiedades que debía tener, derivadas de los fallos observados en el software existente.

Ada, cuyo nombre rinde homenaje a Ada Lovelace, la considerada primera programadora, fue el resultado de una competición entre varios equipos. Desde su concepción, Ada incorporó características innovadoras que hoy son comunes en lenguajes modernos: genéricos, sistemas de paquetes con separación estricta entre interfaz e implementación, soporte para concurrencia, tipos con restricciones de rango, y contratos de lenguaje. La clave de su diseño reside en el concepto de 'package', una unidad de compilación compuesta por una especificación (el contrato público) y un cuerpo (la implementación oculta). El compilador de Ada impone rigurosamente esta separación, evitando que el código cliente acceda a detalles de implementación, lo que promueve la modularidad y la mantenibilidad.

Aunque Ada no goza de la popularidad de otros lenguajes, ha sido fundamental en aplicaciones críticas como sistemas de control de aeronaves comerciales. Lenguajes como C++, Rust, C# y Go han convergido hacia características introducidas por Ada, a menudo sin reconocer explícitamente su origen. La filosofía de Ada se centra en la seguridad y la verificabilidad, rechazando código que no pueda ser verificado y exigiendo claridad en la intención del programador. Esto contrasta con la flexibilidad de otros lenguajes, que a veces permiten ambigüedades que pueden llevar a errores sutiles y difíciles de depurar. La 'verbosidad' y la rigidez de Ada, que alguna vez se consideraron desventajas, ahora se ven como cualidades deseables en lenguajes modernos que buscan la seguridad y la robustez.

En resumen, Ada es un lenguaje que, aunque poco conocido, ha influido profundamente en el diseño de lenguajes modernos, demostrando la importancia de la seguridad, la modularidad y la claridad en el desarrollo de software crítico.