24 lines
2.2 KiB
Plaintext
24 lines
2.2 KiB
Plaintext
C++ Considered Harmful
|
|
<p>My blogging will be sporadic to nonexistent for a while, as my friend Rob Landley and I are concentrating heavily on writing a paper together. The working (and probably final) title is “Why C++ is Not Our Favorite Programming Language”. It begins:</p>
|
|
<blockquote><p>
|
|
C++ is an overcomplexity generator. It was designed to solve what<br />
|
|
turned out to be the wrong problems; as a result, it lives in an<br />
|
|
unhappy valley between two utility peaks in language-design space,<br />
|
|
with neither the austere elegance of C nor the expressiveness and<br />
|
|
capability of modern interpreted languages. The layers, patches, and<br />
|
|
added features designed to lift it out of that valley have failed to<br />
|
|
do so, resulting in a language that is bloated, obfuscated, unwieldy,<br />
|
|
rigid, and brittle. Programs written in C++ tend to inherit all<br />
|
|
these qualities.</p>
|
|
<p>In the remainder of this paper we will develop this charge into<br />
|
|
a detailed critique of C++ and the style it encourages. While we<br />
|
|
do not intend to insult the designers of C++, we will not make<br />
|
|
excuses for them either. They repeatedly made design choices that<br />
|
|
were well-intentioned, understandable in context, and wrong. We<br />
|
|
think it is long past time for the rest of us to stop suffering<br />
|
|
for those mistakes.
|
|
</p></blockquote>
|
|
<p>Yes, we are attempting to harpoon the Great White Whale of modern programming languages. I’m announcing this here to give my commenters the opportunity to contribute. If you know of a particularly good critical analysis of C++, or technically detailed horror story around it, please cite. Superb apologetics for the language would also be interesting.</p>
|
|
<p>The paper is developing primarily from a software-engineering perspective rather than out of formal language theory. I’m particularly looking for empirical studies on the importance of manual memory management as a defect attractor (I have the Prechelt paper from the year 2000). I’m also interested in any empirical studies comparing the productivity impact of nominative vs. structural vs. duck typing.</p>
|
|
<p>After about 3 days of work our draft is over 600 lines of clean narrative text in asciidoc. It’s going well.</p>
|