technology

Stroustrup: complexity is the new constant in software development

The relentless march of AI and sophisticated libraries is fundamentally reshaping the software landscape, according to C++ pioneer Bjarne Stroustrup. He’s dismissing the notion of a single ‘best’ programming language, arguing that increasing complexity isn’t a bug, but a core feature of modern development.

A double-edged sword: control vs. speed

A double-edged sword: control vs. speed

Stroustrup, a name synonymous with robust systems, isn’t shy about his perspective. In a recent interview, he bluntly stated that attempts to simply ‘make things easier’ – a prevailing trend in contemporary language design – are ultimately misguided. He suggests that the fundamental need for granular control over system resources, a cornerstone of software engineering, is now more critical than ever. This drives a division in the industry: those programmers who meticulously craft every line of code, and the others who rely heavily on pre-built components.

He’s famously, and somewhat critically, pointed out that learning to code effectively online is a fallacy. “You won’t become a competent programmer simply by consuming tutorials,” he’s repeatedly asserted. The sheer volume of information available online, combined with a lack of genuine practical application, creates a superficial understanding.

Stroustrup's assertion isn’t a novel one; it’s a recurring theme in his commentary. He’s consistently identified a dichotomy: languages lauded for their ease of use – Python, Java, C# – often lack the depth and control required for demanding applications. While these languages accelerate initial development, they introduce their own complexities through reliance on extensive external libraries and demanding environments. The result, according to Stroustrup, is a system that’s ultimately more intricate than it appears.

“There are only two types of programming languages,” he reportedly quipped, “those people complain about, and those nobody uses.” This provocative statement underlines a crucial point: success – and longevity – in the industry isn’t about chasing perceived simplicity, but about choosing the right tool for the job. C++, with its inherent complexity, remains a steadfast choice for large-scale, reliable systems, especially where precise control is paramount.

He emphasizes that the demand for complex solutions will always generate criticism, but both approaches – embracing meticulous control and leveraging readily available tools – possess merit when applied judiciously. ‘The pursuit of perfection is the enemy of utility,’ he concluded, a sentiment that resonates with decades of experience in the field. And, as he consistently reminds us, truly successful systems aren't built on fleeting trends, but on a bedrock of fundamental understanding.