Stroustrup: la complejidad en programación, una necesidad, no un error
El creador de C++ ha vuelto a encender el debate sobre los lenguajes de programación, y su veredicto es claro: la complejidad no es un problema a evitar, sino una condición inherente a la potencia y el control.
La dicotomía de los lenguajes: ¿quejas o desuso?
Bjarne Stroustrup, figura clave en la evolución de la programación, desafía la idea de la simplicidad como meta absoluta en el desarrollo de software. En declaraciones recientes, ha señalado una realidad incisiva: “Solo hay dos tipos de lenguajes de programación: aquellos de los que la gente se queja y aquellos que nadie usa”. Una frase que obliga a replantearse la obsesión por lenguajes “fáciles” y la búsqueda de la perfección inalcanzable.
Stroustrup distingue, fundamentalmente, entre dos categorías de lenguajes. Por un lado, los lenguajes industriales, como C++, Java y Python, que se caracterizan por su complejidad, su larga trayectoria y la constante queja que generan entre sus usuarios. Estos lenguajes, a pesar de sus imperfecciones, son los pilares sobre los que se construye la ingeniería de software a gran escala, ofreciendo el control y la eficiencia necesarios para sistemas críticos. La cifra habla por sí sola: son los que realmente se utilizan, a pesar de las críticas.
Por otro lado, existen los lenguajes “perfectos” y “prácticos”, a menudo experimentales o académicos, que sacrifican potencia y flexibilidad en aras de la simplicidad. Estos lenguajes, aunque atractivos en teoría, carecen de la capacidad para abordar problemas complejos y, por lo tanto, permanecen relegados a entornos especializados.

¿El fin de la programación? una falacia peligrosa
La creciente automatización y las herramientas de bajo código han generado debates sobre la obsolescencia de la programación tradicional. Stroustrup, sin embargo, rechaza esta idea con vehemencia. “Incorporar código es inaceptable y vergonzoso”, afirma, refiriéndose a la práctica de utilizar herramientas que ocultan la complejidad subyacente. La programación, según él, requiere una comprensión profunda de los principios fundamentales y una capacidad para resolver problemas de forma creativa.
La imposibilidad de aprender a programar “por internet”, otra de sus afirmaciones polémicas, subraya la importancia de la formación rigurosa y la experiencia práctica. No basta con seguir tutoriales; es necesario comprender los conceptos y aplicarlos en situaciones reales.
El auge de la IA y la necesidad de control: El científico de la computación danés argumenta que la integración de la inteligencia artificial y las bibliotecas modernas no simplifica la programación, sino que exige un mayor nivel de control. Los lenguajes de programación deben ofrecer la flexibilidad y la potencia necesarias para gestionar la complejidad inherente a estos nuevos paradigmas.
C++ no es el lenguaje más popular, ni tampoco el más sencillo. Pero su versatilidad y su capacidad para abordar problemas complejos lo convierten en una herramienta esencial para la ingeniería de software. Su percepción de
