Bjarne Stroustrup: Uniendo elegancia y velocidad
Bjarne Stroustrup deseaba algo que, sobre el papel, parecía una contradicción: un lenguaje donde pudiera escribir programas "tan elegantes como los de Simula, pero tan eficientes como los de C". Simula era lento y académico; C era rápido e implacable. Stroustrup pasó las siguientes cuatro décadas demostrando que la contradicción era solo aparente y, en el proceso, construyó el lenguaje que aún hace funcionar los sistemas operativos, navegadores, motores de juego y plataformas de negociación del mundo.
Un comienzo de clase trabajadora en Aarhus
Stroustrup nació el 30 de diciembre de 1950 en Aarhus, Dinamarca, en una familia de clase trabajadora, y estudió matemáticas con especialización en informática en la Universidad de Aarhus de 1969 a 1975. Luego fue a la Universidad de Cambridge para obtener un doctorado en informática, completado en 1979 bajo la dirección de David Wheeler y centrado en la computación distribuida. Fue en Cambridge, y a través de la influencia de Kristen Nygaard —uno de los dos inventores de Simula y de la propia programación orientada a objetos—, donde Stroustrup absorbió las ideas sobre clases, herencia y abstracción que definirían el trabajo de su vida. Ha dicho que su exposición al poder expresivo de Simula, combinada con la frustración por lo imprácticamente lento que era ejecutarlo, plantó el problema específico que C++ fue construido para resolver.
Bell Labs y el nacimiento de "C with Classes"
En 1979, Stroustrup se unió al Centro de Investigación de Ciencias de la Computación de AT&T Bell Labs en Murray Hill, Nueva Jersey, la misma cultura de investigación que había producido Unix y el propio lenguaje C. Allí comenzó a extender C con clases al estilo de Simula, llamando inicialmente al resultado "C with Classes". El manual de referencia interno de lo que sería renombrado como C++ apareció en 1984, y el lenguaje alcanzó su lanzamiento comercial en 1985, el mismo año en que Stroustrup publicó la primera edición de "The C++ Programming Language", un libro que llegaría a tener cuatro ediciones y traducción a veintiún idiomas. Construyó deliberadamente C++ como una extensión de C en lugar de un lenguaje desde cero, una decisión que le costó algo de pureza teórica pero le compró compatibilidad inmediata con una enorme base de código y cadena de herramientas existente, un intercambio pragmático que hizo más que cualquier otra cosa para determinar qué tan rápido se extendió el lenguaje. Continuó dirigiendo el departamento de Investigación de Programación a Gran Escala de AT&T Bell Labs desde su creación hasta finales de 2002, y fue nombrado Bell Labs Fellow en 1993 y AT&T Fellow en 1996.
Lo que C++ añadió realmente
C++ añadió a C un sistema de tipos estáticos que trataba a los tipos definidos por el usuario con la misma seriedad que a los integrados, programación orientada a objetos basada en las clases y la herencia de Simula, y —en un movimiento posterior y posiblemente más influyente— programación genérica a través de plantillas, permitiendo que el código se escribiera una vez y se especializara para muchos tipos sin sacrificar la velocidad. Su idioma de gestión de recursos, RAII (adquisición de recursos es inicialización), vinculaba la vida útil de un recurso a la vida útil de un objeto a través de constructores y destructores, un patrón que resolvió una clase de errores de memoria y fugas de recursos que habían plagado a los programadores de C durante años y que más tarde influyó en los diseños de manejo de recursos de los lenguajes con recolección de basura. Crucialmente, nada de esto se hizo a costa del acceso directo de C al hardware y a los recursos del sistema operativo: la mitad de eficiencia de la ambición original de Stroustrup nunca se vio comprometida por la mitad de elegancia.
Veinte preguntas, ocho minutos de reloj y un percentil medido frente a todos los que la han hecho. Sin registro.
Hacer la prueba de CI →Guiando un lenguaje a través de la estandarización
Stroustrup no simplemente inventó C++ y se alejó. Fue miembro fundador del esfuerzo de estandarización ANSI en 1989 y del comité ISO posterior en 1991, y presidió el Grupo de Trabajo de Evolución del comité —el organismo que evalúa cada adición propuesta al lenguaje— durante veinticuatro años. Ese es un período de administración inusualmente largo para el creador de cualquier lenguaje de programación, y significó que Stroustrup dio forma personalmente a cómo C++ absorbió décadas de nuevas demandas, desde el soporte de concurrencia hasta la metaprogramación en tiempo de compilación, sin romper el enorme cuerpo de código C++ existente que ya se ejecutaba en producción.
Carrera académica e industrial después de Bell Labs
Después de Bell Labs, Stroustrup se trasladó a la Universidad Texas A&M en 2002 como profesor titular de la Facultad de Ingeniería, convirtiéndose en profesor distinguido de la universidad en 2011. En 2014 se unió a Morgan Stanley como miembro técnico y director gerente mientras ocupaba simultáneamente una cátedra visitante en la Universidad de Columbia, y desde 2022 es profesor titular de informática en Columbia, un arco inusual al final de su carrera que colocó al inventor de un lenguaje de sistemas en el centro de la tecnología de una firma comercial de Wall Street.
Premios y reconocimientos
Los honores de Stroustrup siguen su enorme influencia más que cualquier avance celebrado individualmente: el Premio ACM Grace Murray Hopper en 1993, la elección como ACM Fellow e IEEE Fellow en 1994, el Premio William Procter al Logro Científico en 2005 (el primer informático en recibirlo), la Medalla IET Faraday en 2017 y el Premio Charles Stark Draper en 2018 "por conceptualizar y desarrollar el lenguaje de programación C++". El Museo de Historia de la Computación lo reconoció como Fellow en 2015, acreditándole "llevar la programación orientada a objetos y la programación genérica a la corriente principal". No ha recibido el Premio ACM Turing.
Por qué se llama genio a Bjarne
El argumento para llamar genio a Stroustrup no descansa en un solo golpe de originalidad teórica: la orientación a objetos provino de Nygaard y Dahl, la programación genérica tenía precedentes y C ya existía. Descansa, en cambio, en un tipo más raro de juicio de ingeniería: la capacidad de fusionar ideas que el campo había asumido que estaban en tensión, sin romper ninguna, y seguir haciendo ese intercambio correctamente a lo largo de un cuarto de siglo de decisiones de estandarización a medida que la computación misma cambiaba debajo del lenguaje. La cita del Premio Draper le acredita por "conceptualizar y desarrollar" C++, un lenguaje que reconoce la síntesis en lugar de la invención pura. El contraargumento honesto es sustancial: C++ es ampliamente criticado, incluso dentro del campo, por su complejidad acumulada, su exposición de los programadores a trampas de seguridad de memoria que lenguajes más nuevos como Rust fueron diseñados explícitamente para eliminar, y por compromisos de diseño que se remontan directamente a la decisión fundacional de Stroustrup de mantener la compatibilidad con versiones anteriores de C. Su genio, si la palabra se aplica, está más cerca de la maestría artesanal y la administración —construir algo enormemente útil e imperfecto, y luego mantenerlo unido durante cuarenta años— que de un destello de pura intuición abstracta.
Legado
C++ sigue siendo fundamental para los sistemas operativos, navegadores, motores de juego y sistemas de comercio financiero, y su influencia recorre visiblemente Java, C# y Rust. La propia evaluación de Stroustrup sobre el trabajo de su vida siempre ha sido característicamente poco sentimental: construyó una herramienta destinada a ser utilizada, y bajo esa medida —pura ubicuidad durante décadas— C++ ha tenido éxito más allá de casi cualquier otro lenguaje de programación en la historia.

