Wandering Thoughts archives

2007-08-15

The problem that built C++ (a thesis)

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.)

programming/CPlusPlusProblem written at 23:03:36; Add Comment


Page tools: See As Normal.
Search:
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.