Stroustrup: la complejidad es la clave, no un problema
Bjarne Stroustrup, el arquitecto de C++, vuelve a encender el debate sobre qué hace a un lenguaje de programación realmente bueno. Lejos de buscar la simplicidad a toda costa, el científico de la computación danés defiende una postura contundente: la complejidad, lejos de ser un defecto, es una necesidad en la ingeniería de software moderna.
El control es la esencia: dos vías en la programación
Mientras la proliferación de lenguajes como Python, JavaScript y Ruby genera confusión sobre cuál elegir, Stroustrup traza una línea divisoria clara. No se trata de facilidad de uso, sino de la capacidad de controlar el sistema a un nivel profundo. La industria, según él, se encuentra dividida entre lenguajes que ofrecen ese control preciso y aquellos que, aunque más accesibles, sacrifican esa capacidad.
La idea de que programadores dejen de escribir código, relegados a simplemente incorporar fragmentos prefabricados, es algo que Stroustrup considera “inaceptable y vergonzoso”. La verdadera maestría reside en la comprensión y el control, no en la mera ejecución de instrucciones.

C++: más allá de la percepción de dificultad
A pesar de no ser el lenguaje más extendido en términos de líneas de código (C# y Java lo superan), C++ mantiene la reputación de ser un ecosistema de “alta complejidad”. Esta complejidad, sin embargo, es intencionada. Stroustrup explica que su diseño buscaba una superficie técnica extensa y una versatilidad inigualable, permitiendo resolver problemas que los lenguajes más “fáciles” simplemente no pueden abordar. El objetivo no es la simplicidad por sí misma, sino la eficiencia y la fiabilidad a escala industrial, algo que se ha vuelto aún más relevante en las últimas tres décadas.
Lo que nadie cuenta es que la simplicidad, a menudo vendida como el mayor atractivo de los lenguajes modernos, suele conllevar una dependencia excesiva de bibliotecas externas y entornos pesados. Esta dependencia, paradójicamente, introduce una complejidad oculta que puede resultar en menor eficiencia y flexibilidad que la de C++.

La paradoja de la perfección: ¿qué quieren los programadores?
Stroustrup resume la situación con una frase lapidaria: “Solo hay dos tipos de lenguajes de programación: aquellos de los que la gente se queja y aquellos que nadie usa”. Esta observación pone de relieve una verdad incómoda: la perfección es, a menudo, enemiga de la utilidad. Los lenguajes exitosos, como C++, Java o Python, son objeto de constantes críticas precisamente porque son ampliamente utilizados y vitales para la industria. En contraste, los lenguajes “perfectos”, simples y teóricamente elegantes, suelen relegarse a ámbitos académicos o experimentales, sin encontrar aplicación práctica.
El creador de C++ enfatiza que cualquier herramienta poderosa, por definición, generará ciertas quejas. Pero esa incomodidad es un precio justo a pagar por la capacidad de resolver problemas complejos de manera efectiva. La clave está en elegir el lenguaje adecuado para la tarea en cuestión, reconociendo que no existe una solución única para todos.
La reflexión final de Stroustrup, compartida en su blog, es clara: la utilidad siempre prevalecerá sobre la perfección.