Ir al contenido principal

Una entrevista al Dr. Bjarne Stroustrup: C++ y anécdotas


Queremos proveer una traducción a una entrevista realizada por Elf Qrin y publicada en su sitio web al Dr. Bjarne Stroustrup, con fecha 14 de octubre de año 2000, donde se expresa interesantes ideas del hombre detrás del libro "The C++ Programming Language" el libro de cabecera para entender C++.

El Dr. Stroustrup tiene un rol protagónico en el desarrollo del estándar ANSI / ISO para C ++ y ha publicado varios papers. Vamos con la entrevista:

---

Elf Qrin:
¿Cuándo y cómo empezaste con las computadoras?

Bjarne Stroustrup:
En 1970. Comencé un curso de informática como parte de mi segundo año en la universidad. Nuestra computadora departamental llenó una habitación pequeña y tenía menos poder computacional y menos de una décima parte de la memoria de mi cámara digital de bolsillo. Sin embargo ¡la programación fue divertida! Sigue siendolo. Por si sientes curiosidad: mi primer lenguaje de programación fue Algol60.

Caboom:
¿Qué te hizo hacer un envoltorio (wrapper) de objetos alrededor de C++ y en qué proyecto estabas trabajando?

Bjarne Stroustrup:
No describiría lo que hice como un "envoltorio de objetos". Cada lenguaje debe poder expresar cosas como bucles, condiciones, expresiones aritméticas, etc. Al basarme en C, estaba seguro de tener un conjunto completo de artefactos básicas. Por "completo" no me refiero en un sentido formal o teórico; eso es fácil. Me refiero en un sentido práctico.
Al tener C++como un subconjunto, supe que mi nuevo lenguaje tenía suficientes instalaciones para la construcción de sistemas serios desde el primer día.

Caboom:
¿Tenía alguna idea en el momento en que hizo un envoltorio alrededor de C, que C++ se convertiría, en algún momento, en una plataforma de desarrollo independiente?

Bjarne Stroustrup:
En realidad, esperaba que se convirtiera en la próxima versión de C.

Caboom:
¿Cuáles fueron los lenguajes de programación orientados a objetos que usaste como modelo para C++?

Bjarne Stroustrup:
El concepto de clase de C++ está estrechamente modelado con Simula. Simula es el lenguaje de programación original orientado a objetos. Introdujo clases, jerarquías de clases, funciones virtuales, etc. Fue desarrollado por Dahl & Nygaard en Oslo (Noruega) a finales de los años sesenta.

Caboom:
¿Crees que C++ posee gran parte de su popularidad en C?

Bjarne Stroustrup:
Ciertamente. C++ fue diseñado para ser el siguiente paso desde C++ para los buenos programadores. Hay mucho que me gusta de C. De lo contrario, habría basado C++ en algún otro lenguaje.

SpiderMan:
¿Alguna vez soñaste con que C++ llegaría tan lejos? ¿Acaso sabías que C++ iba a ser grande o te sorprendiste cuando finalmente lo hizo?

Bjarne Stroustrup:
Me sorprendió. Sabía que los conceptos de C++ eran sólidos y que las técnicas que usé en su implementación hicieron de C++ una herramienta barata, eficiente y práctica en muchos entornos. Solo estaba tratando de servir bien a mis usuarios; De repente, noté que ya no podía contar a esos usuarios y que ya no tenía idea de lo que la mayoría de los usuarios de C++ estaban haciendo.

Un aspecto importante de las ideas realmente buenas y generales es que son aplicables mucho más allá de la imaginación de su creador. Me preocupaba más que pudiera limitar la utilidad de C++ imponiendo restricciones innecesarias. Los intentos de limitar la expresión a lo que un diseñador sabe que es bueno es un problema común con los nuevos lenguajes.

Para obtener más información sobre C++, consulte mis páginas de inicio: http://www.research.att.com/~bs

SpiderMan:
Si pudieras hablar con esas personas que te llamaron loco o dijeron que C++ nunca sucedería, ¿qué les dirías ahora?

Bjarne Stroustrup:
Pocas personas me llamaron loco en mi cara. Yo solo sonreía.

SpiderMan:
¿Dónde ves a C++ dentro de 20 años? ¿Por qué?

Bjarne Stroustrup:
No puedo imaginar. Espero que sea tanto mejor que el C++ actual como el C++ actual sea mejor que el K&R C++ original de hace 20 años.

No me sorprendería si tuviera millones de usuarios y tampoco me sorprendería si tuviera solo unos cientos de miles de programadores.

SpiderMan:
¿A dónde ves que se dirige el futuro de la tecnología?

Bjarne Stroustrup:
soy un programador y un científico, no un profeta. La mayoría de los científicos que han vivido están trabajando actualmente. Ellos encontrarán algo. Espero que algo de eso sea tan bueno que no podría imaginar qué es eso. Claramente, en las próximas décadas veremos aplicaciones sorprendentes de computadoras y de biología, pero cuáles serán, preferiría no adivinar.

Elf Qrin:
¿Qué piensas de la "ventanización (Windows)" de M$ de los lenguajes y tecnologías destinados a ser portátiles, como C y Java?

Bjarne Stroustrup:
Prefiero los lenguajes no propietarios. Es por eso que he dedicado tanto tiempo a la estandarización ISO de C++. También estoy muy interesado en la portabilidad. En consecuencia, no estoy interesado en los esfuerzos de Microsoft para popularizar lenguajes específicos de plataforma, como Visual Basic y C#. Tampoco estoy interesado en los intentos de Microsoft de hacer que su plataforma propietaria sea central para la programación. Por otro lado, no creo que Sun sea más benigno. Sun está impulsando un lenguaje y una plataforma de propiedad (Java) sobre lenguajes estandarizados como C y C++. Naturalmente, ambas corporaciones trabajan arduamente para hacer que sus ofertas propietarias sean más atractivas para las personas que las alternativas no propietarias.

SpiderMan:
¿Por qué no hay una biblioteca estándar ANSI para gráficos?

Bjarne Stroustrup:
Los comités de ANSI e ISO no tienen los recursos para diseñar tales bibliotecas, y los proveedores comerciales todavía luchan por el dominio en lugar de unirse para un esfuerzo de estándares. Una norma ANSI / ISO se basa en el consenso y aún no existe un consenso de este tipo en temas de gráficos y GUI.

SpiderMan:
¿Qué consejo le darías a aquellas personas que comienzan en la programación?

Bjarne Stroustrup:
No te apresures a crear el juego más elegante como tu primer programa. Centrarse en conceptos y técnicas. Aprende bien un lenguaje antes de intentar abordar aplicaciones difíciles. Recuerde que existe una distinción entre un lenguaje de programación y una interfaz gráfica de usuario. No confunda los gráficos elegantes (generados usando las bibliotecas y herramientas de otra persona) con una buena programación.

SpiderMan:
¿Crees que algunas personas nacen como programadores y otras no?

Bjarne Stroustrup:
para ser un buen programador, debe ser razonablemente brillante (no necesita ser un genio), necesita un poco de habilidad práctica (la programación también es un oficio) y necesita algo de tenacidad (la depuración puede ser bastante tedioso). Algo de eso con lo que claramente nace, y mucho viene de su actitud y entrenamiento que tiene menos que ver con el debate de la vieja naturaleza contra la naturaleza.

SpiderMan:
En tu opinión, ¿ves la codificación como una forma de libertad de expresión? (del caso DeCSS)

Bjarne Stroustrup:
No reconozco el acrónimo "DeCSS". Veo la programación como una actividad creativa, como escribir prosa o poesía, componer música o diseñar hardware. ¿Quieres decir "gratis" como en "gratis" y "puedo copiar tu trabajo sin pagar?" Mi respuesta a eso es que el trabajo creativo debe ser alentado y protegido; De lo contrario, mucho menos se hará. Si el creador de una obra quiere darle una obra gratis, está bien, pero si no da ese permiso, copiar la obra es un simple robo, ya sea un poema, una novela, una canción grabada o un programa.

SpiderMan:
Por lo general, los niños pequeños quieren ser médicos, bomberos, superhéroes, etc. ¿Qué querías ser cuando eras pequeño?

Bjarne Stroustrup:
No recuerdo haber estado estancado en un sueño específico por mucho tiempo. Tenía suficiente experiencia con el trabajo manual para saber que no quería hacerlo para vivir. Recuerdo leer libros gruesos sobre arquitectura, soñar con construir cosas. Recuerdo haber leído historia y sociología, soñando con hacer una contribución a nuestra comprensión del mundo y hacerlo un lugar mejor. Pero estos son sueños de la escuela secundaria, no sueños de niños pequeños.

Más tarde, incluso soñé con ser matemático (mi maestría es una licenciatura en matemáticas), pero luego descubrí la programación y las alegrías de los sistemas de construcción.

Elf Qrin:
¿Cómo te sientes al saber que para algunos tipos eres tan bueno como un basquetbolista, una estrella de béisbol o de fútbol?

Bjarne Stroustrup: 
Da miedo, especialmente cuando me envían un correo electrónico de la nada y me piden un consejo. Consejos sobre la vida y las carreras, quiero decir. Las preguntas técnicas son fáciles. Parece que cualquier tipo de fama viene con una carga de resonsibilidad.

Caboom:
¿Alguna vez recibió este tipo de correos electrónicos: "Sr. stroustrup, si alguien puede ayudar, ese es usted: en la línea 2354, creo que hay algún error que puede corregir el código para mí". ? Si es así, ¿cómo reaccionas?

Bjarne Stroustrup: 
Tal vez. Recibo dos docenas de solicitudes de ayuda con algún tipo de problema de programación o diseño todos los días. La mayoría tiene más sentido que enviarme cientos de líneas de código. Si lo hacen, les pido que encuentren el ejemplo más pequeño que explique el problema y me lo envían. Sobre todo, ellos mismos encuentran el error ellos mismos. "Encontrar el programa más pequeño que demuestra el error" es una poderosa herramienta de depuración.

Trato de ser útil, pero no hago la tarea (de otras personas), y a menudo recomiendo a las personas que lean su libro de texto de C++ con más atención antes de enviarme un correo. O para encontrar ayuda local. Solo hay uno de mí y *muchos* programadores y estudiantes de C++.

--

Fin.

Tambien puedes leer otra entrevista llamada La conspiración C++

Comentarios