"Aren't you going to pack this, Mother?" Roberta asked, pointing to the beautiful cabinet inlaid with red turtleshell and brass.
"We can't take everything," said Mother.
"But we seem to be taking all the ugly things," said Roberta.
"We're taking the useful ones," said Mother; "we've got to play at being Poor for a bit, my chickabiddy."
When all the ugly useful things had been packed up and taken away in a van by men in green-baize aprons, the two girls and Mother and Aunt Emma slept in the two spare rooms where the furniture was all pretty.
-- from The Railway Children by E. Nesbit
Eric Raymond, author of the [Computer] Jargon File, The Cathedral and The Bazaar and a number of well-used but little-known pieces of software, is working on a book, putatively titled Why C++ Is Not Our Favorite Programming Language. In his recent announcement, he lays out why he wants to "harpoon the Great White Whale of programming languages":
C++ is an overcomplexity generator. It was designed to solve what turned out to be the wrong problems; as a result, it lives in an unhappy valley between two utility peaks in language-design space, with neither the austere elegance of C nor the expressiveness and capability of modern interpreted languages. The layers, patches, and added features designed to lift it out of that valley have failed to do so, resulting in a language that is bloated, obfuscated, unwieldy, rigid, and brittle. Programs written in C++ tend to inherit all these qualities.
In the remainder of this paper we will develop this charge into a detailed critique of C++ and the style it encourages. While we do not intend to insult the designers of C++, we will not make excuses for them either. They repeatedly made design choices that were well-intentioned, understandable in context, and wrong. We think it is long past time for the rest of us to stop suffering for those mistakes.
C++ is my own favourite programming language, not that I am any great expert, given that the only other language in which I have brought any other project to fruition is Java, and that was in 2004. This is not to say that C++ does not have its fair share of annoyances, but as the title is not Why C++ Sucks but simply why it's not their favourite, I will lay out why it remains mine, and more to the point, why it endures despite the existence of alternatives such as Java.


Recent Comments