Bjarne Stroustrup es el creador de C++, cuya referencia oficial se publicó el 14 de octubre de 1985. Veinticinco años después de este hecho, Stroustrup hace algunas interesantes reflexiones.
El autor del lenguaje C++ empezó la búsqueda de algún lenguaje que reemplazara al lenguaje C, inventado en los laboratorios Bell, ahora AT&T Bell Labs, desde 1979, en donde él y sus colegas en el departamento de investigación, tenían permiso de experimentar con nuevas maneras de construir software.
C++ se convirtió en el lenguaje de programación más popular jamás creado. Se diseñó como un lenguaje de “propósito general“: podría correr en prácticamente cualquier plataforma y en casi todas partes, especialmente en videojuegos y sistemas embebidos.
Después de publicar su libro C++ Programming Language, Stroustrup continuó activo en la comunidad de C++, trabajando en el diseño del lenguaje, escribiendo compiladores y ayudando a hacer del lenguaje un estándar ISO en 1998. Actualmente es un profesor distinguido y poseedor de un puesto en el Colegio de Ingeniería en Ciencias de la Computación en la Universidad A&M de Texas.
Para conmemorar el aniversario de plata de la publicación de este texto definitivo sobre C++, la revista Wired le pidió a Stroustrup sus reflexiones en los últimos 25 años, incluyendo el legado de C++ y el impacto que ha tenido en las aplicaciones actuales del cómputo. Stroustrup nos dijo también qué música escucha mientras programa -una mezcla de clásico y Clapton. [Las respuestas las dio el afamado autor por correo electrónico].
Pregunta: ¿Para quién creó C++? ¿Para usted, o para una audiencia más amplia en mente?
Bjarne Stroustrup: Se escribió pensando en mí y en mis colegas. Teníamos una amplia variedad de problemas y C parecía ser una herramienta innecesariamente primitiva para hacer el tipo de diseño e implementación que necesitábamos y que podríamos hacer con computadoras más rápidas y más memoria. Por otra parte, las máquinas eran todavía ridículamente pequeñas para los estándares del 2010. Un MHz y un MegaByte eran un lujo. Así, el plan fue minimizar los cuellos de botella en lo que era lógicamente lo más importante.
En ese tiempo, AT&T Bell Labs simplemente era el lugar más emocionante del mundo para un ingeniero o para un científico de computadoras con una inclinación práctica. No había fin a la variedad de retos interesantes y mucha gente interesante colaboró en ellos.
Pregunta: ¿En qué momento se dio cuenta que su creación sería algo fenomenal?
Stroustrup: Esto llegó gradualmente. Estaba muy ocupado trabajando para reflejarlo filosóficamente, pero desde el día uno, lo que yo buscaba era la generalidad, y yo sabía que solamente con ideas articuladas podría sobrevivir. Yo sabía que la Programación Orientada a Objetos (POO) era el siguiente gran paradigma, pero estaba ya muy cerca del proceso de apreciar realmente lo que estaba haciendo.
Yo sólo quería hacer que las técnicas de programación se basaran en tipos estáticos seguros y las abstracciones disponibles, enseñables y aplicables a la programación de sistemas. Además de lo que se refiere al diseño del lenguaje y a la implementación. Ayudé en docena de proyectos para sentir las diferentes áreas de los problemas.
de 1979 a 1991, la comunidad de usuarios de C++ se duplicó cada 7.5 meses. Esto me dejo poco tiempo para una callada reflexión. Debe hacerse notar que fue un tiempo de fermentación de la comunidad de programación: Ada, Smalltalk, Eiffel, Objective C, CLOS (Common Lisp), y otros lenguajes compitieron por el gusto de los programadores. En ese contexto, C++ fue el único ‘lenguaje avanzado’ sin una organización de mercadeo.
Por favor, tome nota que mi camino a la fama no es por haber inventado la POO. No hice eso. Ese honor pertenece a los diseñadores de Simula: Ole-Johan Dahl y Kristen Nygaard, pero mi contribución fue mayormente en ponerlo a consideración de un amplio auditorio. También, mi idea de C++ fue siempre ir más allá de las definiciones apretadas, angostas, de la POO. De hecho incluso mi primer “paper” presentaba un ejemplo de programación genérica (el cual estaba todo mal). Muchas veces es más importante tener el problema correcto que la mejor solución.
Pregunta: En su visión, ¿cuál es el impacto más significativo que C++ ha tenido en la cultura en general, no los programadores, sino en los seres humanos de todos los días?
Stroustrup: La última medida del éxito de cualquier lenguaje de programación debe ser el impacto de sus aplicaciones.
La medida no es la belleza de una instrucción individual o qué tan elegante puede hacerse un ejemplo que pueda caber en el formato académico de dos columnas de un “paper“. Así, para mí, la mayor satisfacción viene de las aplicaciones que son interesantes y además, son retos, las cuales no podrían haberse escrito sin C++, o posiblemente se hubiesen tardado años en aparecer por la falta de un lenguaje capaz de hacer aplicaciones que demanda el mundo real: El carrito marciano Mars Rover, el proyecto del genoma humano para encontrar cadenas de ADN, Google, Amazon, los sistemas de reservación de vuelos (Amadeus), análisis de código (Coverity), animación (Maya), autos, aviones, Photoshop, sistemas de telecomunicación, Videojuegos como Doom, Warcraft, Age of Empires, Halo. Túneles de viento, exploración de petróleo, la mayoría del software de Microsoft y mucho de las máquinas virtuales de Java en Apple, Thuderbird y Firefox, MySQL, mucho software financiero, Openoffice, etc.
Cuando está bien hecho, el software es invisible. Hay muchos pequeños procesadores en mi pequeña cámara fotográfica, pero no pienso en mi cámara como una computadora. Hay docenas de computadoras en un auto moderno, pero aún pienso en él como un auto.
Las personas ven las aplicaciones, pero primero yo debo tratar con los fundamentos y la infraestructura que soporta estas aplicaciones. Sospecho que si hubiese tenido algo de sentido comercial, cada computadora y casi cualquier gadget habría tenido una calcomanía que dijera: “C++ Inside“.
En general, no pienso que la gente aprecia lo mucho que depende del software, Dada la complejidad de la sociedad moderna y de los sistemas de transportación modernos, es justo decir que la mayoría de la gente podría morir de hambre si no tuviese software. Así como sin electricidad, calor y teléfonos.
Pregunta: ¿Cuánto tiempo pasa actualmente haciendo programación?
Stroustrup: Muy poco, por supuesto. Hay días en que no escribo una sola línea de código y la mayoría de los días escribo pequeños fragmentos de código y programas experimentales. Paso más tiempo pensando sobre programación, tratando de enseñar sobre programación, tratando de escribir sobre programación y tratando de pensar en las maneras fundamentalmente mejores de desarrollar software.
No hallo esto sencillo. Escribir código es más simple y sencillo, pero por sí mismo, es típicamente tan estéril y poco importante como hacer crucigramas.
Sin embargo, hay un par de días en los cuales no hago nada de código y yo nunca doy una plática sin algo de código al menos.
Pregunta: ¿Qué hardware y software usa actualmente?
Stroustrup: Tengo una pequeña laptop (que pesa menos de 3 libras) con un montón de compiladores de C++. Es una máquina con Windows. Mi máquina de escritorio es un sistema Linux con más compiladores y herramientas para el desarrollo de software.
Pregunta: Con respecto a los nuevos sistemas, marcos de trabajo, protocolos y aplicaciones, ¿qué es lo que admira?
Stroustrup: Yo solamente noto que considero que un lenguaje de programación, una herramienta para programar, como la única y la mejor herramienta para todos y para todo problema, es una idea infantil. Si alguien clama que tiene el lenguaje perfecto o es un tonto, o un vendedor, o ambas cosas.
Pregunta: La mayoría de los programadores son muy especiales en lo que respecta a la música que escuchan mientras programan. ¿Qué música escucha usted?
Stroustrup: La quinta de Tchaikovsky, El Anillo sin Palabras, de Wagner, Las suites de Grieg, Sibelius, el Inextinguible de Nielsen, varios conciertos de Mozart, las Dixie Chicks, los Beatles, Abbey Road, el Mesías de Handel, Water Music, Eric Clapton, La quinta y séptima sinfonía de Beethoven. Tengo que ver en mi laptop que es lo último que he escuchado.
Pregunta: ¿De qué modos los dispositivos ultraportátiles con pantallas táctiles -el iPhone, los teléfonos Android, el iPad- han cambiado la manera en cómo las computadoras están en nuestras vidas?
Stroustrup: Sospecho que son tan invasivas en la medida que ayudan. Es bueno obtener indicaciones sobre calles y críticas sobre restaurantes en la palma de la mano, pero estar siempre conectado, siempre accesible o interrumpible, y con la música sonando todo el tiempo, interfiere con el pensamiento. Necesito tiempo para una reflexión callada, por lo que probablemente yo no aprecie todos estos dispositivos como mucha otra gente.
Pregunta: ¿Qué le parecen las tiendas de apps que sirven a estas plataformas de hardware? ¿Qué impacto están teniendo en los usuarios, programadores, creatividad, el comercio del software?
Stroustrup: No lo sé. Creo que la clave es saber qué es importante al final del día: el uso de bibliotecas masivas de rutinas propietarias y de medios ambientes de ejecución o las oportunidades para aplicaciones innovadoras ofrecidas por la ubicua presencia de los dispositivos. Estos nuevos canales abren nuevas brechas a la imaginación.
Pregunta: ¿Lee libros electrónicos?
Stroustrup: Con muy poca frecuencia y la mayoría es literatura muy ‘light‘. Encuentro las pantallas muy chicas para los trabajos técnicos y las facilidades para hacer anotaciones y escribir sobre los documentos electrónicos son todavía muy débiles.
Pregunta: ¿Algún consejo para los programadores jóvenes?
Stroustrup: Sospecho que dar consejos es más fácil comparado con hacer caso a ellos. Conozca sus elementos fundamentales (algoritmos, estructura de datos, arquitectura de las computadoras y sistemas), y aprenda varios lenguajes de programación al punto que pueda usarlos como cualquier otro idioma.
Conozca su campo (que no tenga que ver con el cómputo), adecuadamente: matemáticas, biología, historia, óptica, lo que sea. Trate de comunicarse efectivamente verbal y por escrito. Gaste una irracional cantidad de tiempo en tópicos verdaderamente difíciles. Trate de hacer algo que haga la diferencia en nuestro mundo.
Fuente: Wired