Stroustrup: la complejidad en programación, una necesidad, no un error
Bjarne Stroustrup, el creador de C++, vuelve a encender el debate sobre los lenguajes de programación, y esta vez lo hace reivindicando la complejidad como un rasgo inherente a la potencia. En un contexto donde la automatización y las bibliotecas simplifican el desarrollo, su postura desafía la creencia generalizada de que la programación debe ser lo más accesible posible.
¿Por qué la complejidad es, en realidad, una virtud?
La opinión del científico de la computación danés llega en un momento crucial. Mientras que la industria parece inclinarse hacia lenguajes de alto nivel y herramientas que minimizan la escritura de código, Stroustrup argumenta que el control preciso, un aspecto fundamental en la ingeniería de software, requiere, sí, una cierta dosis de complejidad. La bifurcación en la industria es clara: lenguajes que priorizan la abstracción y la facilidad de uso, o aquellos que ofrecen un control granular sobre el hardware y los recursos.
El propio Stroustrup ha sido contundente en el pasado, llegando a afirmar que aprender a programar únicamente a través de internet es una labor casi imposible, y que la ambición intelectual no es un impedimento para el éxito en la industria. Su famosa frase, “solo hay dos tipos de lenguajes de programación: aquellos de los que la gente se queja y aquellos que nadie usa”, es una píldora de realidad para un sector obsesionado con la simplicidad a toda costa.

C++: más allá de la percepción de dificultad
Aunque C++ no es el lenguaje más extendido en términos de líneas de código, superado por C# o Java, su reputación de “alta complejidad” es innegable. Stroustrup señala que su diseño original buscaba precisamente la versatilidad y la capacidad de abordar problemas a gran escala, no la simplicidad a toda hora. En lugar de buscar soluciones genéricas, C++ se adapta a los desafíos específicos que surgen a lo largo del tiempo, una flexibilidad que los lenguajes “fáciles” a menudo sacrifican en pos de la accesibilidad.
La dependencia de bibliotecas externas y entornos pesados en estos lenguajes modernos, paradójicamente, los vuelve complejos y menos eficientes. La facilidad de uso inicial se traduce, con frecuencia, en limitaciones a largo plazo. Los lenguajes como C++, Java o Python generan quejas constantes, pero son los elegidos para proyectos masivos, confiables y estables. En contraste, aquellos que se proclaman “perfectos” y “prácticos” por su simplicidad, suelen relegarse a entornos académicos o experimentales.
Stroustrup, con la experiencia de quien ha moldeado el panorama de la programación, concluye con una frase lapidaria: “la perfección es enemiga de la utilidad”. En un mundo donde la innovación avanza a velocidad vertiginosa, la capacidad de adaptarse y resolver problemas complejos, incluso a costa de cierta dificultad, sigue siendo la clave del éxito.
