Stroustrup declares complexity is not a bug—it's a feature

The debate over the “best” programming language rages on. But Bjarne Stroustrup, the creator of c++, has a firm stance: the pursuit of simplicity has run its course. His perspective, shared recently, challenges the prevailing narrative of easy-to-learn languages versus the power of established systems.

Two sides of the coin

Two sides of the coin

Stroustrup argues that the current software landscape is effectively split into two categories. One group develops systems where code is rarely written directly, relying on high-level platforms. The other? Those who grapple with the intricacies of languages like C++, Java, and Python – often facing complaints about complexity.

“There are only two kinds of programming languages: those people complain about and those nobody uses,” Stroustrup quipped, highlighting a stark truth about technology adoption. While C++ may not boast the sheer volume of usage of languages like C# or Java, its enduring reputation for complexity stems from its raw power and extensive technical depth. Modern, “easy” languages, built on external libraries and complex environments, often prove less efficient and flexible when compared to C++.

This isn't a condemnation of simplicity, but rather a recognition that power necessitates a certain level of complexity. Stroustrup emphasizes that attempting to create a universally simple language is a futile exercise. “Perfection is the enemy of utility,” he stated, suggesting that the most effective tools are often those that offer a balance between ease of use and robust functionality.

The rise of AI and increasingly sophisticated libraries are further fueling this trend. These advancements allow developers to accomplish more with less direct coding, but the underlying systems remain complex. The demand for scalable, reliable, and stable systems will continue to drive the need for languages capable of handling significant complexity. The choice isn't between simple and complex, but between the right tool for the job.

This view underscores a persistent tension in the tech world: the desire for accessibility versus the need for power. Stroustrup’s perspective isn't a rejection of modern development practices, but a realistic assessment of the trade-offs involved. The future of software isn't about eliminating complexity; it's about managing it effectively.

And while the allure of ‘easy’ languages remains strong, the systems that truly endure are those built on a foundation of robust, albeit complex, languages.