211service.com
Bjarne Stroustrup
En las décadas de 1980 y 1990, cuando era investigador en AT&T Bell Labs, el científico informático de origen danés Bjarne Stroustrup diseñó C ++, posiblemente el lenguaje de programación más influyente de los últimos 25 años. Por todo eso, C ++ es controvertido. El lenguaje no es del agrado de los millones de programadores que lo usan, en gran parte porque es notoriamente difícil de aprender y usar, y porque el diseño de Stroustrup les permite cometer graves errores de programación en aras de maximizar su libertad de expresión. En la actualidad, Stroustrup es profesor de informática en la Universidad Texas A&M.

Bjarne Stroustrup, el inventor del lenguaje de programación C ++
Revisión de tecnología : ¿Por qué la mayoría del software es tan malo?
Esta historia fue parte de nuestro número de enero de 2007
- Ver el resto del número
- Suscribir
Bjarne Stroustrup: Algunos programas son bastante buenos, según cualquier estándar. Piense en los Mars Rovers, Google y el Proyecto Genoma Humano. Ahora, ese es software de calidad! Nuestra civilización tecnológica depende del software, por lo que si el software hubiera sido tan malo como su peor reputación, la mayoría de nosotros ya estaríamos muertos.
Por otro lado, el código de software promedio puede hacerme llorar. Los programadores claramente no pensaron profundamente en la corrección, los algoritmos, las estructuras de datos o la mantenibilidad. La mayoría de las personas no saben lo malo que es porque no leen el código: solo ven que Windows se congela o que su teléfono celular interrumpe una llamada.
NIÑOS : ¿Cómo podemos arreglar el lío en el que estamos?
BS: No podemos simplemente detener al mundo durante una década mientras reprogramamos todo, desde nuestras máquinas de café hasta nuestros sistemas financieros. Por otro lado, salir del paso es caro, peligroso y deprimente. Se necesitan mejoras significativas y solo pueden llegar gradualmente. Pero deben llegar en un frente amplio; ningún cambio será suficiente.
Mirando mi propio campo estrecho de diseño de lenguajes de programación, mi opinión es que un buen lenguaje puede ser un activo importante, pero solo cuando se usa adecuadamente y bien. Un idioma no resuelve problemas; simplemente ayuda a la expresión de soluciones.
NIÑOS : ¿Qué hace a un buen lenguaje de programación?
BS: Todo lo que ayude a las personas a expresar sus ideas mejora el lenguaje. Un idioma debe ser bueno para las tareas cotidianas en manos de buenos artesanos. Importa menos si el idioma es hermoso en sí mismo. Hay más sistemas útiles desarrollados en lenguajes considerados horribles que en lenguajes elogiados por ser bellos, muchos más.
NIÑOS : ¿No es importante la elegancia?
BS: La elegancia es fundamental, pero ¿cómo se mide la elegancia? ¿El menor número de caracteres para expresar la solución a un problema? Creo que deberíamos buscar la elegancia en las aplicaciones creadas, más que en los propios lenguajes. Sería exagerado llamar al complicado conjunto de herramientas de un carpintero (muchas bastante peligrosas) elegante . Por otro lado, la mesa y las sillas de mi comedor son elegantes, realmente hermosas. Dicho esto, por supuesto, sería mejor si el idioma en sí fuera una hermosa obra de arte.
NIÑOS : ¿C ++ es demasiado difícil para la mayoría de los programadores?
BS: No debería ser así. Para usar bien C ++, debe comprender la técnica de diseño y programación. En cierto sentido, mis críticos tienen razón: no todo el mundo debería escribir C ++, pero nunca dije que debería hacerlo. C ++ está diseñado para permitirle expresar ideas, pero si no tiene ideas o no tiene idea de cómo expresarlas, C ++ no ofrece mucha ayuda.
NIÑOS : ¿Cómo explica el hecho de que C ++ es ampliamente criticado y resentido por muchos programadores pero al mismo tiempo se usa ampliamente?
BS: La respuesta simplista sería: sólo hay dos tipos de lenguajes: de los que todo el mundo se queja y de los que nadie usa. La razón principal del éxito de C ++ es simplemente que cumple con sus objetivos de diseño limitados: puede expresar una amplia gama de ideas de manera directa y eficiente.
NIÑOS : En tu libro El diseño y la evolución de C ++ , afirma que Kierkegaard influyó en su concepción del lenguaje. ¿Eso es una broma?
BS: Un poco pretencioso, tal vez, pero no una broma. Gran parte del pensamiento sobre el desarrollo de software se centra en el grupo. Las prácticas corporativas pueden ser directamente hostiles a personas con habilidades e iniciativa excepcionales. Considero que esa gestión de personas excepcionales es cruel y derrochadora. Kierkegaard fue un firme defensor del individuo contra la multitud. No puedo señalar una característica específica de C ++ y decir: 'Mira, existe la influencia del filósofo del siglo XIX, pero él es una de las raíces de mi renuencia a eliminar las características de nivel experto'. Sin embargo, no me gusta mucho su filosofía religiosa.
NIÑOS : ¿Qué es lo que más te arrepientes?
BS: ¡Sin arrepentimientos! Bueno, por supuesto que sueño con lo que podría haber hecho de manera diferente y mejor, pero ¿quién soy yo para adivinar, digamos, el Bjarne de 1984? Puede que tuviera menos experiencia que yo, pero no era menos inteligente, probablemente más inteligente, y tenía una mejor comprensión del mundo de 1984 que yo. C ++ se ha utilizado para construir muchos sistemas que mejoran nuestras vidas y ha tenido una influencia positiva significativa en lenguajes y sistemas posteriores. Eso es algo de lo que estar orgulloso.
