The problem that built C++ (a thesis)

August 15, 2007

At least at one point, there were a lot of people who loudly couldn't understand why C++ was still around as a going concern. After all, didn't Java have it beat hollow, as Java was a much more productive object oriented language to develop in?

Such people implicitly believe that that problem that built C++ is 'building object oriented programs'; now that there was a well known better solution to that problem, they couldn't see why C++ didn't wither away. But they're wrong.

My thesis is that the problem that built C++ is actually 'we want to build big software projects in a language with predictable, fast native code'. It turns out that there are an important class of programs for which you want these attributes; if nothing else, you need to build the basic blocks of your JVM or your CLR out of something.

While C is a language with predictable fast native code, it is not entirely suitable for big projects because the complexity explodes unless you do something. Objects are a good way of containing the complexity of a big project (partly by reducing connections), and C++ gives them to you while C forces you to build them by hand.

(This is not to say that C++ was never used as a general object oriented programming language; it was, when better languages weren't available. When they became available, C++ started being driven out of that job and back into its core line of work.)

Written on 15 August 2007.
« The benefits of growing your toolbox
How to tell a DNS no data reply from a lame delegation »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Wed Aug 15 23:03:36 2007
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.